Получение данных Candlestick / Kline из Binance API с помощью Python (желательно запросы) для получения данных JSON

Я разрабатываю бот для телеграмм, который извлекает данные Candlestick из Binance API. Я не могу получить в ответ данные JSON. Следующий код - это то, что я пробовал.

 import requests 

 import json

 import urllib.request

`url = "https://api.binance.com/api/v1/klines"

response = requests.request("GET", url)
print(response.text)`

Желаемый результат:

[ [ 1499040000000, // Open time "0.01634790", // Open "0.80000000", // High "0.01575800", // Low "0.01577100", // Close "148976.11427815", // Volume 1499644799999, // Close time "2434.19055334", // Quote asset volume 308, // Number of trades "1756.87402397", // Taker buy base asset volume "28.46694368", // Taker buy quote asset volume "17928899.62484339" // Ignore ] ]

Вопрос отредактирован:

Результат, который я получаю:

 `{"code":-1102,"msg":"Mandatory parameter 'symbol' was not sent, was empty/null, or malformed."}'

person Jin Barai    schedule 16.07.2018    source источник
comment
Какую ошибку / сообщение вы получаете?   -  person Gernot    schedule 16.07.2018
comment
Результат, который я получаю: <Response [400]>   -  person Jin Barai    schedule 16.07.2018


Ответы (2)


вам не хватает символа обязательных параметров и интервала, запрос должен быть таким:

https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=1h

вам нужно импортировать только запросы:

import requests

market = 'BTCUSDT'
tick_interval = '1h'

url = 'https://api.binance.com/api/v3/klines?symbol='+market+'&interval='+tick_interval
data = requests.get(url).json()

print(data)

Пожалуйста, проверьте официальную документацию Binance REST API здесь: https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md

person Domenico    schedule 19.07.2018
comment
Можно ли передать список символов? - person H Aßdøµ; 17.03.2021
comment
@ HAßdøµ Нет, вы не можете передать список символов, обратитесь к документации API: github.com/binance/binance-spot-api-docs/blob/master/. - person Domenico; 21.03.2021

Пакет python запросов имеет аргумент params, json, поэтому вам не нужно импортировать какие-либо из этих пакетов, которые вы импортируете.

import requests

url = 'https://api.binance.com/api/v3/klines'
params = {
  'symbol': 'BTCUSDT',
  'interval': '1h'
}
response = requests.get(url, params=params)
print(response.json())
person carkod    schedule 05.05.2021
comment
последняя строка должна быть: print (response.json ()) вместо: print (response.json) - person Domenico; 10.05.2021