Ich habe ein Wörterbuch, das Wörterbücher enthält, die auch Wörterbücher enthalten können, z. B.
%Vor%Momentan entpacke ich, um die 'Rechnung an' für ID 001, 'Transaktionsreferenz' a1 wie folgt zu erhalten:
%Vor%Ich kann nicht anders, als zu denken, dass das etwas klobig ist, besonders die letzten zwei Zeilen - ich habe das Gefühl, dass etwas im Sinne des Folgenden funktionieren sollte:
%Vor%Gibt es einen einfacheren Ansatz zum Aufschlüsseln in verschachtelte Wörterbücher, ohne dass Sie in vorläufige Variablen entpacken müssen?
funktioniert tatsächlich. transactions['Transaction Details']
ist ein Ausdruck, der eine dict
angibt, so dass Sie darin nachschlagen können. Für praktische Programme würde ich jedoch einen OO-Ansatz für geschachtelte Diktate bevorzugen. collections.namedtuple
ist besonders nützlich, um schnell eine Menge von Klassen einzurichten, die nur Daten enthalten (und kein eigenes Verhalten).
Es gibt eine Einschränkung: In einigen Einstellungen möchten Sie vielleicht KeyError
abfangen, wenn Sie nachschauen, und in dieser Einstellung funktioniert das auch, es ist schwer zu sagen, welche Wörterbuchsuche fehlgeschlagen ist:
Im Folgenden finden Sie eine weitere Möglichkeit, auf verschachtelte Wörterbücher zuzugreifen
%Vor%Hier bezieht sich die Variable 'name' auf 'dbo [' m '] [' d '] [' v '] [' version ']', was viel kürzer und sauber erscheint.
Diese Methode löst KeyError nicht aus. Wenn ein Schlüssel nicht gefunden wird, erhalten Sie 'None'.
Siehe auch: Ссылка
Tags und Links python nested dictionary