Allerdings habe ich festgestellt, dass sich ein "shelve" entgegen der Beschreibung in der Dokumentation anders verhält als ein Dictionary. (s.u.)
Code: Alles auswählen
159: db_shelf = shelve.open("test.s")
160: db_shelf["Main"] = {}
161: db_shelf
{'Main': {}}
162: db_shelf["Main"]["Sub"] = {}
163: db_shelf
{'Main': {}}
165: db_dict = {}
166: db_dict["Main"] = {}
167: db_dict["Main"]["Sub"] = {}
168: db_dict
{'Main': {'Sub': {}}}
Ich hatte schon über "sqlite" nachgedacht, aber da ich in einigen Loops über die unteren Dimensionen des Dictionaries iterieren möchte und diese sich in Anzahl und Werten unterscheiden können, bin ich wieder davon abgekommen.
Ich möchte etwas persistentes, weil sich der Eingabestrom, aus dem das Dictionary generiert wird, täglich ändert und mit den alten Werten verglichen werden soll.
Am Ende kann so eine Struktur eben so aussehen:
Code: Alles auswählen
In [190]: db_dict
Out[190]:
{'Main': {'Sub1': {'type': 33}, 'Sub2': {'type': 444}},
'Main-2': {'Sub1': {'count': 100, 'type': 678}, 'Sub2': {'count': 180}}}