Проверять дерево ключей в словаре
Есть словарь
dict1 = {
"value": {
"test": {
"name":{
"age":"30"
}
}
}
}
Нужно забирать элемент словаря, при этом какого то ключа может не быть, в этом случае заменять на дефолтное. Все это нужно делать в одну строку!
dict1 = {
"value": {
"test": None
}
}
Сделал такой вариант, но не првильно, есть еще варианты?
dict1.get("value").get("test").get("name").get("age") or "null"
Ответы (2 шт):
Автор решения: Алексей Р
→ Ссылка
dict1 = {
"value": {
"test": None
}
}
print(((((dict1.get("value") or {}).get("test") or {}).get("name") or {}).get("age") or {}) or 'null')
null
Автор решения: Виктор
→ Ссылка
Вариант1:
s = dict1.get("value",{}).get("test",{}).get("name",{}).get("age",{})
print(s)
Вариант с изголениями:)
getv = lambda d, val: d.get(val,{})
s = getv(getv(getv(getv(dict1,"value"), "test"), "name"),"age")
print(s)