Al revisar un diccionario anidado usando una cadena de notación de puntos "a.b.c.d.e", se crean automáticamente los niveles faltantes
Este me está perdiendo la cabeza. Dado el siguiente diccionario:
d = {"a":{"b":{"c":"winning!"}}}
Tengo esta cadena (de una fuente externa, y no puedo cambiar esta metáfora).
k = "a.b.c"
Necesito determinar si el diccionariotiene la llave 'c', así que puedo agregarlo si no lo hace.
Esto funciona perfectamente para recuperar un valor de notación de puntos:
reduce(dict.get, key.split("."), d)
pero no puedo averiguar cómo "reducir" una comprobación has_key o algo así.
Mi último problema es el siguiente: dado "a.b.c.d.e", necesito creartodos los elementos necesarios en el diccionario, pero no pisarlas si ya existen. Si alguien sabe una manera increíble de hacer todo eso, serás mi héroe.