Dekodierung von json string in python
Habe ich folgenden JSON-string (aus wikipedia http://en.wikipedia.org/wiki/JSON)
{
"name":"Product",
"properties":
{
"id":
{
"type":"number",
"description":"Product identifier",
"required":true
},
"name":
{
"type":"string",
"description":"Name of the product",
"required":true
},
"price":
{
"type":"number",
"minimum":0,
"required":true
},
"tags":
{
"type":"array",
"items":
{
"type":"string"
}
},
"stock":
{
"type":"object",
"properties":
{
"warehouse":
{
"type":"number"
},
"retail":
{
"type":"number"
}
}
}
}
}
Ich versuche zu Dekodieren, die diese Zeichenfolge mit Python-json-Bibliothek. Ich möchte den Zugriff auf die Knoten
properties - > stock - > properties - > warehouse
.
Ich verstehe, dass json.loads()
Funktion speichert den json-string als ein Wörterbuch. Aber in diesem Fall Eigenschaften ist mein Schlüssel und alles, was unter diesem Werte. Wie erhalte ich Zugang zu den oben genannten Knoten.
import json
jsonText=""
file = open("c:/dir/jsondec.json")
for line in file.xreadlines():
jsonText+=line
data = json.loads(jsonText)
for k,v in data.items():
print k // shows name and properties
file.close();
Dank
Sie sind sich bewusst
json.load()
?InformationsquelleAutor Ank | 2012-06-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geladen werden kann json direkt von der Datei wie folgt:
Basierend auf Ihrer Eingabe-string
data
ist jetzt ein Wörterbuch mit anderen Wörterbüchern. Sie kann nur navigieren, bis die Wörterbücher etwa so:manchmal wird Ihre json kommt nicht aus einer Datei - das ist, wenn Sie Lasten verwenden.
Danke.. funktioniert, für das json aber in anderen json bekomme ich TypeError: list indices must be integers, nicht str. Können Sie erraten, warum
Die Daten-Struktur, die Sie zurück bekommen, wird völlig abhängig von der json-Sie setzen in - die Elemente des dictionaries werden könnte, Skalare Datentypen, Listen oder Wörterbüchern. Wenn Sie mehr generic iteration Anforderungen, kann es sinnvoll sein, die Bearbeitung Ihrer Frage.
InformationsquelleAutor Steve Mayne