2016-08-22 15 views
-2

は、私は次のようにフォーマットされ、反復処理したいいくつかのJSONテキストを持っている:反復のPython

{ 
    "itemsPerPage": 45, 
    "links": { 
    "next": "https://www.12345.com" 
    }, 
    "list": [ 
    { 
     "id": "333333", 
     "placeID": "63333", 
     "description": " ", 
     "displayName": "test-12345", 
     "name": "test", 
     "status": "Active", 
     "groupType": "Creative", 
     "groupTypeV2": "Public", 
     "memberCount": 1, 
    }, 
    { 
     "id": "32423", 
     "placeID": "606", 
     "description": " ", 
     "displayName": "test123", 
     "name": "test", 
     "status": "Active", 
     "groupType": "Creative", 
     "groupTypeV2": "Private", 
     "memberCount": 1, 
    }, 

私はこのリストを反復処理しようとしていますし、しかし、のdisplayNameをつかむ私のコードは異なる表示名のすべてを認識しません。ここに私のコードです:

json objを正常にループするために私はステートメントを修正できますか?

+0

でなければなりません。 –

+0

何が有効なオブジェクトではありませんか? – pokemongirl1234

+0

このオブジェクトを繰り返し使用して、表示名を検索するにはどうすればよいですか? – pokemongirl1234

答えて

0

あなたが投稿したJSONは有効ではありませんが、私は最後にいくつかのものを残しておきます。

for entry in dataset['list']: 
    print(entry['displayName']) 

JSONデータをループします。

あなたはそれが特定の値と一致した場合に()do_stuffしたい場合は

for entry in dataset['list']: 
    if entry['displayName'] == 'test-12345': 
     do_stuff() 
+0

はエントリだけのランダム変数ですか? – pokemongirl1234

+0

はい - 私はデータセット['list']のすべてのオブジェクトをループしています - 各ループでは、現在のオブジェクトの名前は 'entry'です。あなたはそれをあなたが望むものと呼ぶことができます。 –

+1

@ pokemongirl1234はい。リスト内の各オブジェクトはエントリであるため、彼は名前のエントリを選択しました。 – u8y7541

0

これは私のための仕事です。

import json 
text = """{ 
    "itemsPerPage": 45, 
    "links": { 
    "next": "https://www.12345.com" 
    }, 
    "list": [ 
    { 
     "id": "333333", 
     "placeID": "63333", 
     "description": " ", 
     "displayName": "test-12345", 
     "name": "test", 
     "status": "Active", 
     "groupType": "Creative", 
     "groupTypeV2": "Public", 
     "memberCount": 1 
    }, 
    { 
     "id": "32423", 
     "placeID": "606", 
     "description": " ", 
     "displayName": "test", 
     "name": "test", 
     "status": "Active", 
     "groupType": "Creative", 
     "groupTypeV2": "Private", 
     "memberCount": 1 
    }]}""" 
data = json.loads(text) 
for item in data['list']: 
    if 'displayName' in item: 
     print(item['displayName']) 
+0

質問を新しいエラーで更新しました – pokemongirl1234

0

ループ内で実際にアクションを実行する必要があります。 Pythonはブロックを表すために空白に依存しています。これはPythonを書くときに忘れることのできないものです。

for i in range(len(json_obj['list'])): 
if (json_obj['list'][i]['displayName'] == "some id"): 
    do stuff 
else: 
    exit() 

これは有効なJSONオブジェクトではありません

for i in range(len(json_obj['list'])): 
    if (json_obj['list'][i]['displayName'] == "some id"): 
     do stuff 
    else: 
     exit()