[英]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.