Aggiorna il valore di un dizionario nidificato di profondità variabile

| | | | | | |

Sto cercando un modo per aggiornare il dizionario dict1 con i contenuti di dict update senza sovrascrivere levelA

dictionary1="level1":{"level2":{"levelA": 0,"levelB":1}}} update={"level1":{"level2":{"levelB":10}}} dictionary1.update(update) print dictionary1 {"level1": {"level2": { "levelB": 10}}} 

So che update cancella i valori nel livello2 perché sta aggiornando il livello di chiave più basso1.

Come potrei affrontare questo problema , dato che il dizionario1 e l'aggiornamento possono avere qualsiasi lunghezza?