Heim >Backend-Entwicklung >Python-Tutorial >Wie greife ich auf verschachtelte Python-Wörterbücher wie Objekte zu?
So transformieren Sie ein verschachteltes Python-Wörterbuch in ein Objekt
Der Einfachheit halber ist es wünschenswert, auf Daten über den Attributzugriff auf Wörterbücher zuzugreifen, die verschachtelte Wörter enthalten Wörterbücher und Listen, ähnlich der Objektsyntax von JavaScript. Zum Beispiel:
d = {'a': 1, 'b': {'c': 2}, 'd': ["hi", {'foo': "bar"}]}
Auf diese Daten sollte wie folgt zugegriffen werden:
x = dict2obj(d) x.a 1 x.b.c 2 x.d[1].foo bar
Das Erstellen einer solchen Funktion erfordert eine Rekursion. Hier ist ein Ansatz, um objektähnliche Funktionalität für Wörterbücher zu erreichen:
class Struct: def __init__(self, **entries): self.__dict__.update(entries)
Verwendung:
args = {'a': 1, 'b': 2} s = Struct(**args) s.a 1 s.b 2
Alternative Lösung: Namedtuples
Für Python In den Versionen 2.6 und höher sollten Sie die Verwendung der Datenstruktur namedtuple in Betracht ziehen:
from collections import namedtuple MyStruct = namedtuple('MyStruct', 'a b d') s = MyStruct(a=1, b={'c': 2}, d=['hi'])
Jetzt haben Sie ein benanntes Tupel, das sich wie ein Objekt verhält und über Attributzugriff auf seine Felder verfügt. Dies bietet eine prägnante und gut lesbare Lösung.
Das obige ist der detaillierte Inhalt vonWie greife ich auf verschachtelte Python-Wörterbücher wie Objekte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!