Я пытаюсь получить значения из data
, но функция ниже всегда дает мне None. Я включил print
в l oop, чтобы я действительно мог видеть, что условие правильное, не понимая, почему вместо этого возвращается None. Но печатаемое значение верное.
data = {
'test1': {
'test1.1': {
'a': 'a',
'b': 'b'
}
},
'test2': {
'test2.1': {
'test2.2': {
'c': 'c',
'd': 'd'
}
},
'test_list': [1,2,3]
}
}
def get_dict(key, dict_data):
for k, v in dict_data.items():
if k == key and isinstance(v, dict):
print(v)
return v
else:
if isinstance(v, dict):
return get_dict(key, v) # <-- added return, same result
get_dict('test1', data)
возвращает OK
get_dict('test1.1', data)
возвращает None
, но должно быть {'a': 'a', 'b': 'b'}
get_dict('test2', data)
возвращает OK
get_dict('test2.1', data)
возвращает None
, но должно возвращать {'test2.2': {'c': 'c', 'd': 'd'}}