我正在调用一个 API,该 API 以 JSON 格式返回多个股票行情的批处理请求。它是一个嵌套字典,具有 2 级键和一个字典列表。这是脚本:
import json
import requests
import pandas as pd
r = requests.get('https://api.iextrading.com/1.0/stock/market/batch?symbols=aapl,wpx,mnro,twnk,labl,plnt,fsct,qyls,vrns,tree&types=chart&range=3m')
x = r.json()
llist = [*x.keys()]
df=[]
for l in llist:
df.append(pd.DataFrame.from_dict({(i,j): x[i][j]
for i in x.keys()
for j in x[i].keys()},
orient='index'))
df_concat = pd.concat(df, axis=1)
这是示例格式:
{'AAPL': {'chart': [{'change': 0.129548,
'changeOverTime': 0,
'changePercent': 0.06,
'close': 217.6107,
'date': '2018-09-19',
'high': 218.8564,
'label': 'Sep 19, 18',
'low': 214.5514,
'open': 217.7403,
'unadjustedVolume': 27123833,
'volume': 27123833,
'vwap': 216.6509}
我想从中创建一个数据框,其中所有内容都按 Ticker 分组,并按 Date 与其他变量排序,例如:'open'、'close'、'volume' 用作具有相关值的列在行中。到目前为止,示例输出如下所示:
0 1
(AAPL, chart) {'volume': 27123833, {'volume': 26608794,
'close': 118.21,... 'close': 120.11,...
(WPX, chart) {'volume': 1098766, {'volume': 993465,
'close': 13.23,... 'close': 14.68,...
清理这些数据和“解锁”字典列表的最佳和最有效的方法是什么?提前致谢!
相关分类