使用xlwings,如何将JSON数据从多个URL打印到多个列中?

时间:2017-08-10 12:44:31

标签: python json xlwings

我正在使用grequest从多个网址中提取json数据。现在,我想使用xlwings将这些结果打印到excel。这是我现在的代码。

import xlwings as xw
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-AMP&type=both&depth=50',
    'https://bittrex.com/api/v1.1/public/getorderbook?market=BTC-ARDR&type=both&depth=50',
]

requests = (grequests.get(u) for u in urls)
responses = grequests.map(requests)

for response in responses:
        BQuantity = [response.json()['result']['buy'][0]['Quantity'],
        response.json()['result']['buy'][1]['Quantity'],
        response.json()['result']['buy'][2]['Quantity'],
        response.json()['result']['buy'][3]['Quantity'],
        response.json()['result']['buy'][4]['Quantity']
]
wb = xw.Book('Book2')
sht = wb.sheets['Sheet1']
sht.range('A1:C5').options(transpose=True).value = BQuantity

这很好用,但只有当我注释掉除了一个url之外的所有内容时,否则第一个url的结果会被第二个url的结果覆盖,这是预期的结果。但是,这不是我想要的。最后,我希望第一个URL的结果转储到A列,第二个URL转储到B列的结果等......

我可以通过“请求”来提取每个链接。然而,这个操作将由几百个URL组成,其中一个接一个地简单地拉动数据非常耗时。 Grequests提取200个URL,并且在大约8秒内转储到JSON文件,而正常请求大约需要2分钟。

任何帮助都将不胜感激。

0 个答案:

没有答案