2017-09-27 53 views
0

に、私は次の結果のすべてをプリントアウトするためにJSONのリストを反復処理しようとしている:反復処理がJSONリスト上のPython

"examples": [ 
    { 
    "text": "carry all of the blame" 
    }, 
    { 
    "text": "she left all her money to him" 
    }, 
    { 
    "text": "we all have different needs" 
    }, 
    { 
    "text": "he slept all day" 
    }, 
    { 
    "text": "all the people I met" 
    }, 
    { 
    "text": "10% of all cars sold" 
    } 
], 

私が行うことによって、それを反復処理しようとしました:

iterator = 0 
json_example = str(json_data['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['examples'][iterator]['text']).capitalize() 
for i in json_example: 
    print(i) 
    iterator += 1 

しかし、これは最初の例の各文字を印刷しているだけで、例全体に反対であり、その後に他の例が続きます。

私が望むようにこれらを繰り返したり、それぞれの例で別々の変数を作成する必要はありますか?

答えて

0

あなたのコードと例に続いて、それはあなたが必要なもののように見えるがある:あなたのコードで

for example in json_data['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['examples']: 
    print(example["text"]) 

、あなただけiterator番目の項目にアクセスして、そう、常に最初の1(イテレータ=ましたjson_data['results'][0]['lexicalEntries'][0]['entries'][0]['senses'][0]['examples'][iterator]['text']行うことで0)、次に "text"メンバの内容を反復します。

+0

しかし、これは私にエラーを与えます:TypeError:リストインデックスは、[0]、[1]などを忘れた場合、strではなく整数でなければなりません。 – MegaS

+0

@MegaSあなたのコードに合わせようとしましたが、 jsonオブジェクトはあなたが投稿したものです。たとえば、json_data ['examples']:のような単純なものは、このトリックを行います。そうでなければ、すべての間接指定が必要です。 –

0

のみインデックス '例' にアウトJSONデータ:

json_example = json_data [ '結果'] [0] [ 'lexicalEntries'] [0] [ 'エントリ'] [0] [ '感覚'

for dictionary in json_example: 
    for key in dictionary: 
     print(dictionary[key]) 

これはあなたが望むように、キー「テキスト」と相関し、それぞれの値をプリントアウトします:] [0] [「例」]

は、辞書のように「例」の各要素を扱います。