Python 3在列表中请求库和json

时间:2013-07-19 01:47:42

标签: python arrays json python-requests

例如,我有这个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')是唯一的记录提取..或者我希望第三个数据('data3')是唯一提取的...我会这样做吗?

非常感谢,

德鲁

1 个答案:

答案 0 :(得分: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,因为索引应该是整数。