我有一个所有使用相同json结构的URL列表。我试图通过grequest立即从所有URL中提取特定的字典对象。虽然我正在使用请求,但我能够使用一个URL:
import requests
import json
main_api = 'https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-1ST&type=both&depth=50'
json_data = requests.get(main_api).json()
Quantity = json_data['result']['buy'][0]['Quantity']
Rate = json_data['result']['buy'][0]['Rate']
Quantity_2 = json_data['result']['sell'][0]['Quantity']
Rate_2 = json_data['result']['sell'][0]['Rate']
print ("Buy")
print(Rate)
print(Quantity)
print ("")
print ("Sell")
print(Rate_2)
print(Quantity_2)
我希望能够为每个网址打印上面打印的内容。但我不知道从哪里开始。这就是我到目前为止所做的:
import grequests
import json
urls = [
'https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-1ST&type=both&depth=50',
'https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-2GIVE&type=both&depth=50',
'https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-ABY&type=both&depth=50',
]
requests = (grequests.get(u) for u in urls)
responses = grequests.map(requests)
我认为它会像print(response.json(['result']['buy'][0]['Quantity'] for response in responses))
,但根本不起作用,python会返回以下内容:print(responses.json(['result']['buy'][0]['Quantity'] for response in responses)) AttributeError: 'list' object has no attribute 'json'
。我是python的新手,也是一般的编码,我很感激任何帮助。
答案 0 :(得分:1)
您的responses
变量是Response
个对象的列表。如果您使用
print(responses)
它给你
[<Response [200]>, <Response [200]>, <Response [200]>]
括号[]
告诉您这是一个列表,它包含三个Response
个对象。
当您键入responses.json(...)
时,您告诉python在列表对象上调用json()
方法。但是,该列表不提供这样的方法,只有列表中 in 的对象才有。
您需要做的是访问列表中的元素并在此元素上调用json()
方法。这是通过指定要访问的列表元素的位置来完成的,如下所示:
print(responses[0].json()['result']['buy'][0]['Quantity'])
这将访问responses
列表中的第一个元素。
当然,如果要输出许多项目,单独访问每个列表元素是不切实际的。这就是为什么有循环的原因。使用循环你可以简单地说:对我列表中的每个元素执行此操作。这看起来像这样:
for response in responses:
print("Buy")
print(response.json()['result']['buy'][0]['Quantity'])
print(response.json()['result']['buy'][0]['Rate'])
print("Sell")
print(response.json()['result']['sell'][0]['Quantity'])
print(response.json()['result']['sell'][0]['Rate'])
print("----")
for-each-loops为列表中的每个元素执行缩进的代码行。 response
变量中提供了当前元素。