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'

现在如何操作代码以显示我想要的“实际数据”?例如,我希望第一条记录(在本例中为“data1”)是唯一要提取的记录..或者我希望第三条数据('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 回答