Я пытаюсь написать очень простую функцию для рекурсивного поиска через возможно вложенный (в самых крайних случаях, десять уровней) словарь Python и вернуть первое значение, которое он найдет из данного ключа.
Я не могу понять, почему мой код не работает для вложенных словарей.
def _finditem(obj, key):
if key in obj: return obj[key]
for k, v in obj.items():
if isinstance(v,dict):
_finditem(v, key)
print _finditem({"B":{"A":2}},"A")
Он возвращает None
.
Это работает, однако, для _finditem({"B":1,"A":2},"A")
, возвращая 2
.
Я уверен, что это простая ошибка, но я не могу ее найти. Я чувствую, что в стандартной библиотеке или collections
может быть что-то для этого, но я тоже не могу этого найти.