Ich habe das folgende JSON-Wörterbuch:
%Vor%Wie Sie sehen können, sind einige der Wörterbuchwerte in Listen enthalten. Ich versuche, alle Werte von diesem Objekt wie folgt zu erhalten:
%Vor%Dies druckt die Wörterbuchschlüssel:
%Vor% Wenn was ich eigentlich will, sind die Werte. Ich habe versucht, die Zeile print mysubvalue
durch print mysubvalue.values()
zu ersetzen, dies verursacht jedoch den folgenden Fehler:
Ich nehme hier an, dass ich nicht json.loads(mysubdict)
verwenden muss, um mir den Zugriff auf die .values()
-Funktion zu ermöglichen. Wenn ja, bin ich mir nicht sicher, warum ich diesen Fehler bekomme.
Kann jemand helfen?
Danke
Wenn Sie über das Wörterbuch selbst iterieren (für myvalue in myjsonobject), durchlaufen Sie die Schlüssel des Wörterbuchs. Wenn Sie mit einer for-Schleife loopen, ist das Verhalten gleich, unabhängig davon, ob Sie die dict
(myjsonobject) selbst, myjsonobject.keys()
oder myjsonobject.iterkeys()
durchlaufen haben. dict.iterkeys()
ist im Allgemeinen vorzuziehen, weil es explizit und effizient ist:
for myvalue in myjsonobject.iterkeys():
Sie durchlaufen die Schlüssel des JSON-Wörterbuchs und rufen dann für jeden Schlüssel die Funktion .values () auf.
%Vor% iteriert über die Schlüssel. Wenn Sie also zu einem Schlüssel gelangen, der eine Zeichenkette ist, sagen wir,'period ': 16, wird' period'.values () ausgegeben, was diesen Fehler ausspuckt, da die Zeichenklasse keine .values (). Wenn Sie das gesamte JSON-Wörterbuch auf eine beliebige Tiefe reduzieren möchten, würde ich einen rekursiven Ansatz vorschlagen.
Tags und Links python json dictionary