我正在从 MySQLdb 导入两点数据。第二点是 cursor.fetchall() 作为时间增量返回的时间。我没有运气尝试将该信息插入 xlsxwriter,总是收到“类型错误:未知或不受支持的日期时间类型”错误。
好的...第 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: Unknown or unsupported datetime type
即使遍历列表并尝试插入结果也会失败:
timeFormat = workbook.add_format({'num_format': 'hh:mm:ss'})
i = 0
for t in ctTime:
ctWorksheet.write_datetime(i,0,t,timeFormat)
i += 1
最佳答案
我终于让它与我最近的代码一起工作了。图表仍然无法使用插入的时间正确绘制图形,但至少它们插入正确。
由于我是从 SQL 中提取时间增量,所以我必须先更改它们的格式。来自 SQL 的原始时间增量无法正常工作:
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
关于python-2.7 - 将时间插入 xlsxwriter 时出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25209853/