Не удается получить доступ к диктату с дублирующимися значениями динамически из Api - Python для Binance - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь отформатировать этот API https://www.binance.com/api/v1/ticker/allBookTickers

Вот сокращенная версия Api

[{ "символ": "ETHBTC", "bidPrice": "0,07200500", "bidQty": "0,67800000", "askPrice": "0,07203200", "askQty": "7,19200000"}, { "символ" : "LTCBTC", "bidPrice": "0.01281100", "bidQty": "10.90000000", "askPrice": "0.01282500", "askQty": "1.01000000"}]

Каждый диктет сохраняется в качестве индекса в списке. Моя проблема связана с тем фактом, что каждый диктователь начинается с символа, а не с имени, например, «ETHBTC»

Я могу позвонить по порядковому номеру, но так как в api их сотни, мне нужно найти метод, позволяющий напечатать, например, 'ETHBTC', чтобы вызвать этот диктант?

Вот как это выглядело бы в идеальном мире, но я понятия не имею, как этого добиться, любая помощь будет принята с благодарностью?

> data = requests.get('https://www.binance.com/api/v1/ticker/allBookTickers')
> data = data.json() 
> ltc = data['LTCBTC']

1 Ответ

0 голосов
/ 26 июня 2018

Используйте следующий код: -

import requests

#fetched data from url using requests
data = requests.get('https://www.binance.com/api/v1/ticker/allBookTickers')

# creating json object from response
dataJson = data.json() 

# creating dictionary from json object using symbol value as key
dataDictionary = {d['symbol'] : d for d in dataJson}

# accessing dictionary object using symbol value
ltc = dataDictionary['LTCBTC']

print ltc

# now you can use ltc values by given keys as, and so on for other values
print ltc['askPrice']

В этом коде мы создали словарь python из полученного ответа.

...