Python - Поиск родительских ключей для определенного значения во вложенном словаре
Я пытаюсь обработать вложенный словарь и вернуть вложенные родительские ключи для конкретного значения, когда значение может существовать более одного раза во вложенном словаре. Например:
example_dict = { 'key1' : 'value1',
'key2' : 'value2',
'key3' : { 'key3a': 'value3a' },
'key4' : { 'key4a': { 'key4aa': 'value4aa',
'key4ab': 'value4ab',
'key4ac': 'value1'},
'key4b': 'value4b'}
}
Вы заметите, чтоvalue1' появляется в приведенном выше словаре дважды, и я хотел бы создать функцию, которая возвращает либо один список, либо серию списков, которые идентифицируют разные родительские ключи, что в данном случае будетkey1' а также ('key4 ','key4a», key4ac).
Этот тип проблемы рассматривался в другом месте на этом сайте, когда искомое Значение появлялось только один раз и было легко обработано следующей рекурсивной функцией:
def find_key(d,key):
for k,v in d.items():
if isinstance(v,dict):
p = find_key(v,key)
if p:
return [k] + p
elif v == key:
return [k]
print find_key(example_dict,'value4ac').
Если вы запустите приведенный выше код в словаре, я получу только один ответ для родительских ключей. Любая помощь будет высоко ценится, спасибо!