1

たとえば、次の json 応答があります。

response = '{"data" : {"next_Data" : { "actual_data" :["data1", "data2", "data3"]}}}'

大量の json に対する私の通常のアプローチでは、次のようにします。

import requests

for x in response.json()['data']['next_Data']:
    print x['actual_data']

#Output
>>> 'data1'
>>> 'data2'
>>> 'data3'

コードを操作して、必要な「actual_data」を表示するにはどうすればよいですか? たとえば、最初のレコード (この場合は「data1」) だけを抽出したい..または 3 番目のデータ (「data3」) だけを抽出したい..どうすればよいですか?

どうもありがとう、みんな、

ドリュー

4

1 に答える 1

0

同じ質問を持つ将来の訪問者のために、コード スニペットにもう少し記入します。(ちなみに、あなたのスニペットは、あなたが思っているものを印刷しません。) それは次のようになります:

import requests

response = requests.get('http://example.com')
actual_data = requests.json()['data']['next_Data']['actual_data']

for x in actual_data:
    print x

# prints on separate lines data1, data2, data3


print actual_data
# prints ['data1', 'data2', 'data3']
print actual_data[0]
# prints data1
print actual_data[2]
# prints data3
print actual_data[1]
# prints data2
print actual_data[-1]
# prints data3
print actual_data[-2]
# prints data2
print actual_data[-3]
# prints data1

これが、配列を取得したら、データの配列 (実際には Python に関する限りリスト) にアクセスする方法です。

上記のアクセスresponse.json()['data']['next_Data']は戻り{'actual_data': ['data1', 'data2', 'data3']}、そのディクショナリ/ハッシュ/オブジェクトで for ループを実行すると、キーが生成されます。インデックスは整数であると想定されているため'actual_data'、試行x['actual_data']すると TypeError が返されます。

于 2013-07-20T13:12:53.163 に答える