如何使用单个键访问嵌套字典中的值



假设我有一个嵌套的字典,它是从pickle文件中提取的,包含各种级别,我希望只给出最后一个键来获得值。考虑到自己的"分支",钥匙是独一无二的。

主要问题是我有多个密钥和级别:

dict = {

'A': {

'X': {
1: [...],
2: [...]
},

'Y': {
3: [...],
4: [...]
}
}

'B': {

'G': {

'H': {

'Z': [...]
}
}
}

'C': [...]

}

我该怎么做?

一个简单的解决方案是一个递归函数,它甚至适用于嵌套的dictionarys

outer_dict = {'outer': {'inner': 10, 'even_inner': {'innerst': 25}}}

以及功能:

def get_val(search_dict, key):
""" recursive searching the dict """
for elem in search_dict:
if elem == key:
return search_dict[elem]
if isinstance(search_dict[elem], dict):
retval = get_val(search_dict[elem], key)
if retval is not None:
return retval
value = get_val(outer_dict, 'innerst')
print(value)
>> 25

问题:如果密钥不是唯一的,你将只得到第一个匹配。如果键可以多次出现,则需要一个列表来填充值。

请下次提供一个例子!

最新更新