如何通过API调用访问数字数据?

时间:2018-12-30 13:42:36

标签: python api python-requests

我正在通过API调用从芝加哥商品交易所访问期货价格数据。

我正在使用一个URL,当我将其发布到浏览器中时,该URL返回一个csv文件(gzip压缩)。但是,我确实需要用python编写一个程序,该程序可以接收数千个URL并处理接收到的数据。在python的request.get()命令中使用此URL时,得到一个我不知道如何读取的响应。

import requests

url='https://datamine.cmegroup.com/cme/api/v1/download?fid=20181211- 
EOD_xcbt_ff_fut_0-eth_p'
user = '***'
password = '***'

r = requests.get(url, auth=(user, password))
print(r.headers)

除其他外,返回的内容:

{
    'Date': 'Sun, 30 Dec 2018 13:01:07 GMT',
    'Content-Type': 'application/x-gzip',
    'Content-Length': '1287',
    'Content-disposition': 'attachment; filename="xcbt-eodp-ff-fut-20181211.csv.gz"'
}

我假设我要获取的价格包含在元素'attachment; filename="xcbt-eodp-ff-fut-20181211.csv.gz"'中。

我的问题:

如何从收到的回复中获取价格? 然后,如何将数据导入DataFrame

只需使用:

print(r.content)

不返回数值。

1 个答案:

答案 0 :(得分:0)

您应该执行以下操作:

resp = requests.get(url)

# for now it's a Response object. Make a json out of it
json_resp = resp.json()

print(json_resp.get('some_key')) # or what ever you need

然后使用简单的dict功能提取所需的内容。