Python xlrd读取DateTime作为序列号

我有一个date时间格式的Excel。 但是当我阅读表格时,它会读取序列号。

例如,在表格中是08/03/2015但xlrd读取为42219

代码非常简单

 workbook = xlrd.open_workbook(file_contents=excel_contents) the_sheet = workbook.sheet_names()[0] number_of_rows = the_sheet.nrows - 1 curr_row = 0 data = [] while curr_row < number_of_rows: curr_row += 1 air_date = the_sheet.cell_value(curr_row, 1) air_time = the_sheet.cell_value(curr_row, 2) schedule_time = '{}:{}'.format(air_date, air_time) unaware = datetime.strptime(schedule_time, '%m/%d/%Y:%I:%M %p') 

我在Python中用于翻译datetimeair_date由于格式不同而popup。

这是excel的例子。

在这里输入图像说明

这是我得到的错误

builtins.ValueError ValueError:时间数据'42219.0:06:00 AM'不符合格式'%m /%d /%Y:%I:%M%p'

看来你需要使用xldate_as_tuple将Excel格式转换成Python格式(请参阅文档和这个已经存在的问题 ,你会发现格式将date转换为Python。

xldate_as_tuple:

将Excel数字(推定为表示date,date时间或时间)转换为适合提供给datetime或mx.DateTime构造函数的元组。