0

我正在解析很多文件,其中数据存储在嵌套字典中。子字典的名称可能因文件而异。另外,我想我可能需要考虑它们嵌套的不同长度。不过,我总是知道我需要访问的字典的名称。说,我有听写:

d = {'Unknown2': {'Unkw1': {'INeedYou': {'k': 'v'}}}}
d2 = {'anotherkey': {'INeedYou': {'k': 'v'}}}}

我总是需要深入挖掘{'k': 'v'}d['Unknown2']['Unkw1']['INeedYou']除了语法之外,你能想到任何其他方式来访问它吗?

我想我可以使用d.keys()上面显示的方法来获取名称并访问感兴趣的字典,但是由于嵌套可能很深,因此访问我需要的字典需要很多次重复。

我想你们中的一些人可能知道一些巧妙的技巧来更轻松地完成工作。

4

1 回答 1

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
于 2013-10-30T16:13:51.470 回答