ここにpythonの初心者です。私はすべてのJSONの "グループ"オブジェクトを反復しようとしていますが、各自の難しさがあります。これは部分的なリスト(すべてのユーザーがグループを持っているわけではない)なので、try/catchブロックを使用して、グループのリストを持たないユーザーでも早期終了は発生しません。この埋め込みJSONの "リスト"をPythonでどのように反復処理するのですか?
JSONデータは、スニペット:
{
"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
} ]
}
}
]
}
これは、これまでの私のコードです:私はfor gkey...val["groups"][0].iteritems()
を行うことにより、グループリストに0番目の項目のリストをプリントアウトすることができます
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
お知らせけど私が本当に望んでいるのは、group
の各person
エントリー(2人のグループに属している人もあれば、10人以上の人もいます)のすべてのリストの反復です。固定長はありません。これどうやってするの?
は 'ヴァル[ "グループ"]'に 'for'ループを使用してください。それとも、あなたが望むものではないのですか? – syntonym
try/exceptの代わりに、val.get( "groups"、[])とそれ以上の反復を言うことができます。その人にグループがない場合は、空のリストが返されます。 –