【发布时间】:2020-12-29 09:00:55
【问题描述】:
我正在从一个以 UNIX 毫秒为时间戳的 API 检索数据,并试图将这些数据保存到 CSV 文件中。数据以每日为间隔,但如前所述以 UNIX 毫秒时间表示。
我正在使用 pandas 函数将毫秒转换为日期时间,但仍未将数据与时间部分一起保存。我的代码如下:
ticker = 'tBTCUSD'
r = requests.get(url, params = params)
data = pd.DataFrame(r.json())
data.set_index([0], inplace = True)
data.index = pd.to_datetime(data.index, unit = 'ms' )
data.to_csv('bitfinex_{}_usd_{}.csv'.format(ticker[1:-3].lower(), '1D'), mode='a', header=False)
它将数据保存为2020-08-21,而不是2020-08-21 00:00:00。当我以每小时或每 15 分钟为基础轮询 API 时,它仍然包括时间,但不包括每天的时间间隔。我想知道是否缺少将时间从 UNIX 毫秒相应地转换为 %Y-%m-%d %H:%M:%S %Z 格式的步骤?
【问题讨论】:
-
网址是什么?
-
url = 'api.bitfinex.com/v2/candles/trade:{}:{}/hist'.format('1D',ticker)
-
参数呢?
-
start_date = int(time.mktime(dt.strptime('2016-01-01 00:00:00 UTC', '%Y-%m-%d %H:%M:%S %Z').timetuple()) * 1000) end_date = int(time.mktime(dt.strptime('2020-09-01 00:00:00 UTC', '%Y-%m-%d %H:%M:%S %Z').timetuple()) * 1000)params = { 'start': start_date, 'end': end_date, 'sort': 1, 'limit' : 10000}
标签: python pandas datetime time strftime