Как получить доступ к числовым данным из вызова API? - PullRequest
0 голосов
/ 30 декабря 2018

Я получаю доступ к данным о ценах на фьючерсы с Чикагской товарной биржи через вызовы API.

Я использую URL, который при публикации в браузере возвращает CSV-файл (сжатый gzip).Однако мне нужно написать программу на python, которая может принимать несколько тысяч URL-адресов и обрабатывать полученные данные.При использовании этого URL-адреса в команде query.get () в python я получаю ответ, который я не знаю, как читать.

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 голосов
/ 30 декабря 2018

Вы должны сделать что-то вроде:

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, чтобы извлечь то, что вам когда-либо понадобится ..

...