[英]How to iterate over this embedded JSON "list" in python?
這里是python的新手。 我正在嘗試為每個人迭代所有 JSON“組”對象,但遇到了一些困難。 這只是部分列表(並非所有用戶都有組),因此我需要使用 try/catch 塊,以便沒有組列表的用戶不會導致提前終止。
JSON 數據片段:
{
"people": [
{
"person": {
"name": "joe",
"email": "joe@foo.net",
"groups": [
{
"name": "office",
"id": 23
},
{
"name": "mfg",
"id": 93
} ]
},
"person": {
"name": "bill",
"email": "bill@foo.net",
"groups": [
{
"name": "acctg",
"id": 133
},
{
"name": "mgr",
"id": 207
} ]
}
}
]
}
到目前為止,這是我的代碼:
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
請注意,我可以通過執行for gkey...val["groups"][0].iteritems()
打印出組列表中第 0 個項目的列表,但我真正想要的是遍歷每個group
列表的所有group
列表person
條目(有些人分兩個組,其他人 10 個或更多)所以沒有固定長度。 我怎樣才能做到這一點?
那是你要的嗎? :
>>> for group in j['people'][0]['person']['groups']:
for k,v in group.items():
print(k,v)
name acctg
id 133
name mgr
id 207
或更一般地說:
>>> for person in j['people']:
for group in person['person']['groups']:
print('Name : {} --- ID: {}'.format(group['name'], group['id']))
Name : acctg --- ID: 133
Name : mgr --- ID: 207
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.