Можно для таких случаев написать рекурсивную функцию, которая будет принимать на вход основной словарь и путь до нужного ключа.
На коленке написал вот такой пример:
def get_value_from_dict(dct, path):
if not path:
return
key = path[0]
new_path = path[1:]
if curr_value := dct.get(key, None):
if new_path:
if type(curr_value) == dict:
if new_path:
return get_value_from_dict(curr_value, new_path)
else:
return
else:
return curr_value
d={
"lvl1_1": {
"lvl2_1": {
"lvl3_1": "value",
"lvl3_2": {
"lvl4_1": "value"
},
"lvl2_2": "value"
}
}
}
print(get_value_from_dict(d, ["lvl1_1", "lvl2_1", "lvl3_2", "lvl4_1"]))
Возможно там есть некоторые ошибки, наверняка можно было более красиво написать, но поиграйтесь с этим кодом.