Проверка вложенного словаря с использованием точечной нотации «a.b.c.d.e» автоматически создает недостающие уровни
Этот дует мне в голову. Дан следующий словарь:
d = {"a":{"b":{"c":"winning!"}}}
У меня есть эта строка (из внешнего источника, и я не могу изменить эту метафору).
k = "a.b.c"
Мне нужно определить, если словарьhas the key 'c', так что я могу добавить его, если это не так.
Это работает плавно для получения значения точечной нотации:
reduce(dict.get, key.split("."), d)
но я не могу понять, как "уменьшить" проверка has_key или что-то в этом роде.
Моя конечная проблема заключается в следующем: учитывая "a.b.c.d.e", мне нужно создатьall the elements necessary в словаре, но не топайте их, если они уже существуют. Если кто-то знает способ сделать это, то вы будете моим героем.