У меня есть следующий код:
from collections import *
nested_dict = lambda: defaultdict(nested_dict)
data = nested_dict()
, что позволяет мне записать любой новый «путь» в dict в виде однострочного:
data['A']['B']['C']=3
что я и хочу.
Но я хочу получить исключение при запуске (для любого несуществующего пути):
var = data['A']['XXX']['C']
Я чувствую, что мне нужно defaultdict при записи, просто dict при чтении ...
Или есть простой способ проверить, существует ли «путь» в defaultdict без изменения его содержимого ...
Я пытался преобразовать defaultdict обратно в dict перед поиском, надеясь, что:
dict(data)['A']['XXX']['C']
вызовет исключение ... но он продолжал создавать недостающие ключи ...