Atualizar valor de um dicionário aninhado de profundidade variável

| | | | | | |

Estou procurando uma maneira de atualizar dict dictionary1 com o conteúdo de dict update sem sobrescrever levelA

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

Sei que update exclui os valores no level2 porque está atualizando o nível de chave mais baixo1.

Como posso resolver isso , dado que dictionary1 e update podem ter qualquer tamanho?