Есть ли простой и сжатый способ получить значение из вложенного dict и получить None, если его там нет?Python получает вложенный элемент dict
d1 = None
d2 = {}
d3 = {"a": {}}
d4 = {"a": {"b": 12345}}
ds = [d1, d2, d3, d4]
def nested_get(d):
# Is there a simpler concise one-line way to do exactly this, query a nested dict value, and return None if
# it doesn't exist?
a_val = d.get("a") if d else None
b_val = a_val.get("b") if a_val else None
return b_val
if __name__ == "__main__":
bs = [nested_get(d) for d in ds]
print("bs={}".format(bs))
Ваше решение работает только для вложенных словарей 2 уровня. Также какое значение вы хотите вернуть, когда одни и те же ключи найдены на разных уровнях? – Maroun
Вы можете объединить два метода get get. Например, просто верните 'return d.get (" a "). Get ('b'), если d else None' из вашей функции. Это то, что вы ищете? – gtlambert