我正在尝试从 api ( https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=ETH&limit=30&aggregate=1&e=CCCAGG ) 获取数据到 pandas。 API 以 Json 形式提供数据。
df = pd.read_json('new.json' , orient = 'columns')
错误:将字典与非系列混合可能会导致顺序不明确。
我需要的数据:- 图片链接:http://imgur.com/a/bdLN8
我对此真的很陌生,任何帮助都会很棒。
最佳答案
我认为问题在于您将整个 JSON 传递给 read_json
函数,而您应该只传递存储在 Data
属性中的数据.
如果您以编程方式下载数据,我建议使用请求
:
In [422]: import requests
In [416]: data = requests.get('https://min-api.cryptocompare.com/data/histoday?fsym=BTC&tsym=ETH&limit=30&aggregate=1&e=CCCAGG')\
.json()['Data']
data
现在是字典,而不是 JSON 字符串。您可以调用 pd.DataFrame.from_dict
函数来解析数据,如下所示:
In [420]: df = pd.DataFrame.from_dict(data)
In [421]: df.head()
Out[421]:
close high low open time volumefrom volumeto
0 12.29 11.55 12.73 12.54 1500595200 72064.93 875383.96
1 12.22 11.93 12.61 12.29 1500681600 39624.40 489345.17
2 12.03 11.94 12.37 12.22 1500768000 37270.80 452462.43
3 12.22 11.99 12.36 12.03 1500854400 28582.22 347606.39
4 12.59 12.22 13.03 12.22 1500940800 54004.34 676716.41
<小时/>
如果你坚持使用pd.from_json
,那么你必须只传递包含在JSON响应的Data
属性中的字符串数据,否则它不会工作。
关于python - 将 API 中的 JSON 数据解析到 Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45787597/