Возникла следующая ситуация. Есть некоторая структура данных, которая представляет из себя вложенные словари и нужно вытащить данные с опр. уровня вложенности, причём сначала нужно проверить, что данные есть. Вот пример кода «в лоб»:
if key1 in D:
if key2 in D[key1]:
foo(D[key1][key2])
Но писать такие портянки мне лень, да и муторно (уровни вложенности разные могут быть), поэтому слепил такой велосипед:
def accept_keys(D, *keys):
for key in keys:
if key in D:
D = D[key]
else:
return {}
return D
Вопрос, есть ли что-либо из стандартных средств питона для этого?