我有一本像这样的字典:
d = {'dev':
{<dev1>:
{'mod':
{<mod1>:
{'port': [1, 2, 3]
}
}
}
<dev2>:
{'mod':
{<mod3>:
{'port': [] }
}
}
}
}
我希望能够编写一个函数,这样如果我提供‘mod1 1’这样的搜索对象,它就会为我提供父键'dev1‘。
我搜遍了所有的东西,尝试了很多东西,但似乎不能让它起作用。任何帮助都将不胜感激!
我试过以下链接中提到的内容:
Python--Finding Parent Keys for a specific value in a nested dictionary
发布于 2015-07-24 20:36:08
这应该是可行的:
def find_parent_keys(d, target_key, parent_key=None):
for k, v in d.items():
if k == target_key:
yield parent_key
if isinstance(v, dict):
for res in find_parent_keys(v, target_key, k):
yield res
用法:
d = {
'dev': {
'dev1': {
'mod': {
'mod1': {'port': [1, 2, 3]},
},
},
'dev2': {
'mod': {
'mod3': {'port': []},
},
},
},
}
print list(find_parent_keys(d, 'mod'))
print list(find_parent_keys(d, 'dev'))
输出:
['dev2', 'dev1']
[None]
https://stackoverflow.com/questions/31619128
复制相似问题