Python - 从嵌套字典获取键和子键
Python - getting keys AND subkeys from nested dictionary
我有一段 JSON 文件,由于 JSON 是一个字典,我想从中获取键和子键。
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
。
请帮忙
如果你知道字典的深度,你可以这样做:
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 中有多个(且数量可变)关卡,那么您将不得不使用递归来获取所有键。
下面的函数returns 字典中的所有键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))
我有一段 JSON 文件,由于 JSON 是一个字典,我想从中获取键和子键。
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
。
请帮忙
如果你知道字典的深度,你可以这样做:
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 中有多个(且数量可变)关卡,那么您将不得不使用递归来获取所有键。
下面的函数returns 字典中的所有键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))