我正在解析很多文件,其中数据存储在嵌套字典中。子文件的名称可能因文件而异。此外,我想我可能需要考虑他们的嵌套的不同长度。不过,我总是知道我需要访问的字典的名称。说,我有口述:
d = {'Unknown2': {'Unkw1': {'INeedYou': {'k': 'v'}}}}
d2 = {'anotherkey': {'INeedYou': {'k': 'v'}}}}
我总是需要深入研究{'k': 'v'}
。您能想到除d['Unknown2']['Unkw1']['INeedYou']
语法之外的任何其他方式来访问它吗?
我想我可以使用d.keys()
获取名称并使用上面显示的方法访问感兴趣的词典,但由于嵌套可能很深,因此访问我需要的词典需要花费不少时间
我认为你们中的一些人可能知道一些巧妙的技巧,可以更轻松地完成工作。
答案 0 :(得分:2)
我怀疑你可以避免走遍整个字典树,直到找到你找到的钥匙。基本思路是:
def findDict (d, keyName):
if not isinstance (d, dict): return None
if keyName in d: return d [keyName]
for subdict in d.values ():
r = findDict (subdict, keyName)
if r: return r