1

这里的 API:https ://api.bitfinex.com/v2/tickers?symbols=ALL

没有任何标签,我想提取所有的 tBTCUSD、tLTCUSD 等。基本上所有的东西都没有数字。通常,如果它们被标记,我会提取这些信息,以便我可以执行以下操作:

data['name']

或类似的东西但是这个API没有标签..我怎样才能用python获取这个信息?

4

3 回答 3

2

你可以这样做:

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']
于 2018-05-10T08:29:03.520 回答
1

我现在无法访问 Python,但看起来它们被组织在几个子数组的超数组中。

您应该能够将所有内容(超级数组)提取为数据,然后执行以下操作:

for array in data:
print array[0]

不确定这是否回答了您的问题。让我知道!

于 2018-05-10T08:30:05.273 回答
1

即使它没有标签(或者更具体地说,如果它不是 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', ...]
于 2018-05-10T08:30:11.470 回答