Почему не работает поиск значения ключа?
site = {
'html': {
'head': {
'title': 'Мой сайт'
},
'body': {
'h2': 'Здесь будет мой заголовок',
'div': 'Тут, наверное, какой-то блок',
'p': 'А вот здесь новый абзац'
}
}
}
def find_key(struct, key, depth=0, max_depth=None):
if max_depth is not None and depth >= max_depth:
return None
if key in struct:
return struct[key]
elif isinstance(struct, dict):
for sub_struct in struct.values():
result = find_key(sub_struct, key, depth + 1, max_depth)
if result is not None:
return result
return None
def dict_depth(struct, lv=1):
if not isinstance(struct, dict):
return lv
return max(dict_depth(struct[key], lv + 1) for key in struct)
user_key = input('Какой ключ ищем? ')
search_quest = input('Хотите ввести максимальную глубину? Y/N: ')
value = ''
if search_quest.upper() == 'Y':
deep_search = int(input('Введите максимальную глубину? '))
else:
deep_search = dict_depth(site, lv=1)
value = find_key(site, user_key, max_depth=deep_search)
if value:
print(value)
else:
print('Такого ключа нет.')