【发布时间】:2020-01-30 07:25:07
【问题描述】:
我正在尝试从 cryptocompare api 中提取超过 1,000 枚硬币的每日 OHLCV 数据,并将这些数据写入 csv 文件;我已经成功编写了 daily_OHLCV 函数,如果我在单个硬币上调用该函数,它会表现良好,说 daily_OHLCV('BTC','USD')。
但是,当我从 csv 文件导入 1000 个硬币的股票代码列表并尝试使用 for 循环为列表中的每个股票代码调用 daily_OHLCV 函数时,代码不起作用并且错误消息说“DataFrame”对象没有“时间”属性,如果我手动将代码输入到标识符中,它就不会出现。如何解决这个属性错误?
import requests
import datetime
import pandas as pd
import json
import csv
import os
import os.path
with open ('ICO-list.csv',"r")as f:
reader=csv.reader(f)
ico_ticker_list=[]
for row in reader:
ticker=row[2]
ico_ticker_list.append(ticker)
def daily_OHLCV(symbol, comparison_symbol, allData='true'):
url = 'https://min-api.cryptocompare.com/data/histoday?fsym={}&tsym={}&allData=true'\
.format(symbol.upper(), comparison_symbol.upper())
page = requests.get(url)
data = page.json()['Data']
df = pd.DataFrame(data)
df['timestamp'] = [datetime.datetime.fromtimestamp(d) for d in df.time]
path=os.path.expanduser('~')
csvfile=os.path.join(path,'Desktop','Research','daily OHLCV','{}.csv'.format(symbol))
export_csv=df.to_csv(csvfile,na_rep='NA',index=None,header=True)
for item in ico_ticker_list:
daily_OHLCV(item,'USD')
如果有人可以帮助解决此问题以成功调用该函数并为 ico_ticker_list 中的所有代码生成相应的 csv 文件,我们将不胜感激
【问题讨论】:
标签: python-3.x pandas api dataframe