我从MySQLdb导入两个数据点。第二点是cursor.fetchall()作为timedelta返回的时间。我没有运气试图将该信息插入xlsxwriter,总是得到“TypeError:未知或不支持的日期时间类型”错误。
好的......第2轮
现在我正在尝试将timedelta转换为datetime.datetime对象:
for x in tempList:
timeString = str(x[1])
ctTime.append(datetime.datetime.strptime(timeString,"%H:%M:%S))
现在在xlsxwriter中,我设置了格式:
ctChart.set_x_axis({'name': 'Time', 'name_font': {'size': 14, 'bold': True}, 'num_font': {'italic': True},'date_axis': True})
然后我创建了一个时间格式:
timeFormat = workbook.add_format({'num_format': 'hh:mm:ss'})
然后我尝试插入数据:
ctWorksheet.write_datetime('A1',ctTime,timeFormat)
但无论我做什么,无论我如何格式化数据,我总会得到以下错误:
TypeError: Unknown or unsupported datetime type
有什么东西显然我很遗憾吗?
******* 编辑1 ******* jmcnamara - 在回复您的评论时,有更多细节:
我尝试使用datetime.timedelta(0,27453)等时间增量列表,使用以下代码打印时是7:37:33:
timeFormat = workbook.add_format({'num_format': 'hh:mm:ss'})
ctWorksheet.write_datetime('A1',ctTime,timeFormat)
我仍然收到错误:TypeError:未知或不支持的日期时间类型
即使遍历列表并尝试插入结果也会失败:
timeFormat = workbook.add_format({'num_format': 'hh:mm:ss'})
i = 0
for t in ctTime:
ctWorksheet.write_datetime(i,0,t,timeFormat)
i += 1
答案 0 :(得分:0)
XlsxWriter的GitHub主版本支持datetime.timedelta
。
尝试一下,让我知道它是否有效。它可能会在下周上传到PyPI。
答案 1 :(得分:0)
我终于使用了我最近的代码。使用插入的时间图表仍然没有正确绘图,但至少它们正确插入。
由于我从SQL中提取timedeltas,我不得不首先改变它们的格式。来自SQL的原始timedeltas无法正常工作:
for x in templist:
timeString = datetime.datetime.strptime(str(x[1]),"%H:%M:%S")
ctTime.append(timeString)
使用那些datetime.strptime格式化的时间,我能够成功插入到工作表中。
timeFormat = workbook.add_format({'num_format': 'hh:mm:ss'})
i = 0
for t in ctTime:
ctWorksheet.write_datetime(i,0,t,timeFormat)
i += 1