Python Извлечение данных из JSON без метки? - PullRequest
0 голосов
/ 10 мая 2018

API здесь: https://api.bitfinex.com/v2/tickers?symbols=ALL

не имеет никаких меток, и я хочу извлечь все tBTCUSD, tLTCUSD и т. Д. В основном все без цифр. Обычно я извлекаю эту информацию, если они помечены, чтобы я мог сделать что-то вроде:

data['name']

или что-то в этом роде, однако у этого API нет меток ... как я могу получить эту информацию с помощью python?

Ответы [ 3 ]

0 голосов
/ 10 мая 2018

У меня сейчас нет доступа к Python, но похоже, что они организованы в виде супер-массива из нескольких подмассивов.

Вы должны быть в состоянии извлечь все (супер-массив) как данные, а затем выполнить:

for array in data:
print array[0]

Не уверен, отвечает ли это на ваш вопрос. Дайте мне знать!

0 голосов
/ 10 мая 2018

Даже если у него нет меток (или, точнее, если это не объект JSON), это все равно совершенно допустимый фрагмент JSON, поскольку это всего лишь несколько массивов, содержащихся в родительском массиве.

Если вы уже можете получить текст из API, вы можете загрузить его как объект Python, используя json.loads:

import json
data = json.loads(your_data_as_string)

Тогда, поскольку метки, которые вы хотите извлечь, всегда находятся в первой позиции массивов, вы можете сохранить их в списке, используя понимание списка:

labels = [x[0] for x in data]

labels будет:

['tBTCUSD', 'tLTCUSD', 'tLTCBTC', 'tETHUSD', 'tETHBTC', 'tETCBTC', ...]
0 голосов
/ 10 мая 2018

Вы можете сделать это так:

import requests

j = requests.get('https://api.bitfinex.com/v2/tickers?symbols=ALL').json()    

mydict = {}

for i in j:
    mydict[i[0]] = i[1:]

Или используя словарь:

mydict = {i[0]: i[1:] for i in j}

Затем получите к нему доступ:

mydict['tZRXETH']
...