Neu bei Python hier. Ich versuche, über alle JSON- "Gruppen" -Objekte für jede Person zu iterieren, habe aber einige Schwierigkeiten. Dies ist nur eine unvollständige Liste (nicht alle Benutzer haben Gruppen), also muss ich den try/catch-Block verwenden, damit Benutzer ohne eine Liste von Gruppen keine vorzeitige Beendigung verursachen.Wie man über diese eingebettete JSON "Liste" in Python iteriert?
Die JSON-Daten-Snippet:
{
"people": [
{
"person": {
"name": "joe",
"email": "[email protected]",
"groups": [
{
"name": "office",
"id": 23
},
{
"name": "mfg",
"id": 93
} ]
},
"person": {
"name": "bill",
"email": "[email protected]",
"groups": [
{
"name": "acctg",
"id": 133
},
{
"name": "mgr",
"id": 207
} ]
}
}
]
}
Dies ist mein Code so weit:
jdata = json.loads...
for person in jdata['people']:
for key, val in person.iteritems():
print "key ", key , " is ", val
print val["name"]
print val["email"]
try:
for gkey, gval in val["groups"][0].iteritems():
print "gval: " + gval
except:
foo=1
Hinweis I in der Gruppenliste eine Liste der 0-ten Artikel ausdrucken können die for gkey...val["groups"][0].iteritems()
indem aber Was ich wirklich will, ist über alle group
Listen von jedem Eintrag person
iterieren (einige Leute gehören zu zwei Gruppen, andere 10 oder mehr), so gibt es keine feste Länge. Wie kann ich das machen?
eine 'for' Schleife Verwenden Sie auf' val [ "Gruppen"] '. Oder ist das nicht was du willst? – syntonym
Anstelle von try/exception kann man val.get ("groups", []) sagen und die iterate darüber. Wenn diese Person keine Gruppen hat, wird eine leere Liste zurückgegeben. –