[英]Python - getting keys AND subkeys from nested dictionary
我有一个 JSON 文件,由于 JSON 是一个 dict,我想从中获取键和子键。
JSON 代码:
{
"Image": {
"URL / Path": "",
"Max_Width": 300
},
"Font": {
...
我想要实现的目标: ["Image", "Url / Path", "Max_Width", "Font", ..."]
我目前拥有的是: ["Image", "Font", ...]
。 我l=[y for y in __import__('json').load(open(r'FilePath', 'r')).keys()];l
使用了l=[y for y in __import__('json').load(open(r'FilePath', 'r')).keys()];l
。
请帮忙。
如果你知道字典的深度,你可以这样做:
data = {
"Image": {
"URL / Path": "",
"Max_Width": 300
},
"Font": {}
}
all_keys = []
for k in data:
all_keys.append(k)
for k1 in data[k]:
all_keys.append(k1)
这将下降到第二级,遍历每个键,并将其添加到结果中。 但是,如果您的 JSON 中有多个(和可变数量)级别,那么您将必须使用递归来获取所有键。
无论深度如何,下面的函数都会返回 dict dct
中的所有键:
def accumulate_keys(dct): # returns all the keys
key_list = []
def accumulate_keys_recursive(dct): # will accumulate keys in key_list
for key in dct.keys():
if isinstance(dct[key], dict):
accumulate_keys_recursive(dct[key])
else:
key_list.append(key)
accumulate_keys_recursive(dct)
return key_list
print(accumulate_keys(dct))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.