我有一个脚本,可以从api获取时间和价格数据。我希望将其转换为数据框,csv,并最终转换为日期时间。
我已经四处看看,没有发现任何有效的方法。一些看似未解决的结构看起来相似。
最下面的几行是我最后一次创建数据框的尝试,它没有产生任何结果或错误消息。
任何有关如何将其转变为我可以使用的东西的建议,将不胜感激。
def get_price_history(**kwargs):
url = 'https://api.tdameritrade.com/v1/marketdata/{}/pricehistory'.format(kwargs.get('symbol'))
params = {}
params.update({'apikey': key})
for arg in kwargs:
parameter = {arg: kwargs.get(arg)}
params.update(parameter)
return requests.get(url, params=params).json()
d = get_price_history(symbol='SPX',period=10,periodType='day',frequencyType='minute')
pd.DataFrame(d.items(), columns=['open', 'high','low','close','volume', 'datetime'])
df.head(10)
脚本的输出:
print(get_price_history(symbol='SPX',period=10,periodType='day',frequencyType='minute'),
不在上方:
{
'candles': [{
'open': 3318.28,
'high': 3320.6,
'low': 3317.77,
'close': 3319.22,
'volume': 0,
'datetime': 1581345000000
}, {
'open': 3319.11,
'high': 3320.5,
'low': 3318.87,
'close': 3320.46,
'volume': 0,
'datetime': 1581345060000
},
答案 0 :(得分:0)
df将失败,因为没有为df分配值。假设d的值是上面的json输出,请将代码更改为以下内容,以将json导入df:
df = pd.DataFrame(d['candles'], columns=['open', 'high','low','close','volume', 'datetime'])
print(df.head(2))
df.to_csv(r'file_location\\file_name.csv', index = True)
使用pd.to_csv将df保存到csv