Defaultdict multinível com profundidade variável?

Tenho uma lista grande como:

[A][B1][C1]=1
[A][B1][C2]=2
[A][B2]=3
[D][E][F][G]=4

Quero criar um ditado de vários níveis, como:

A
--B1
-----C1=1
-----C2=1
--B2=3
D
--E
----F
------G=4

Sei que se eu usar o defaultdict recursivo, posso escrevertable[A][B1][C1]=1, table[A][B2]=2, mas isso funciona apenas se eu codificar essas instruções de inserçã

Enquanto analisa a lista, não sei quantas [] preciso antes de ligar paratable[key1][key2][...].

questionAnswers(10)

yourAnswerToTheQuestion