Python 使用time.mktime(datetime.strtime(ti,';%m/%d/%Y%I:%m%p';)时,需要元组或结构时间参数时出错
我有一个代码片段,如下所示:Python 使用time.mktime(datetime.strtime(ti,';%m/%d/%Y%I:%m%p';)时,需要元组或结构时间参数时出错,python,python-3.x,datetime,Python,Python 3.x,Datetime,我有一个代码片段,如下所示: Logger_time = [ '6/30/2020 3:15 PM', '6/30/2020 3:16 PM', '6/30/2020 3:17 PM', '6/30/2020 3:18 PM', '6/30/2020 3:19 PM', '6/30/2020 3:20 PM', '6/30/2020 3:21 PM', '6/30/2020 3:22 PM', '6/30/2020 3:23 PM', '6/30/2020
Logger_time = [
'6/30/2020 3:15 PM', '6/30/2020 3:16 PM',
'6/30/2020 3:17 PM', '6/30/2020 3:18 PM',
'6/30/2020 3:19 PM', '6/30/2020 3:20 PM',
'6/30/2020 3:21 PM', '6/30/2020 3:22 PM',
'6/30/2020 3:23 PM', '6/30/2020 3:24 PM',
'6/30/2020 3:25 PM', '6/30/2020 3:26 PM',
'6/30/2020 3:27 PM', '6/30/2020 3:28 PM',
'6/30/2020 3:29 PM', '6/30/2020 3:30 PM',
'6/30/2020 3:31 PM', '6/30/2020 3:32 PM',
'6/30/2020 3:33 PM', '6/30/2020 3:34 PM']
newLoggertime = []
for ti in Logger_time:
timestamp = time.mktime(datetime.strptime(ti, '%m/%d/%Y %I:%M %p'))
newLoggertime.append(timestamp)
当我运行这段代码时,我突然发现了这个错误
TypeError: Tuple or struct_time argument required
我似乎找不到这背后的原因。基本上,此代码将特定格式的日期和时间转换为时间戳。strtime返回一个
datetime
对象,而time.mktime
需要一个元组,如消息所述
您可以选择调用datetime
对象上的timetuple
,并将其传递给time.mktime
:
timestamp = time.mktime(datetime.strptime(ti, '%m/%d/%Y %I:%M %p').timetuple())
或者在datetime
对象上调用timestamp
,直接获取时间戳:
timestamp = datetime.strptime(ti, '%m/%d/%Y %I:%M %p').timestamp()
但是请注意与相关的注释。这是否回答了您的问题?没有,但我发现了问题所在:timestamp=time.mktime(time.strtime(ti,'%m/%d/%Y%I:%m%p'))好的,我承认那里的答案与您的用例不完全匹配,部分不再是最新的。无论如何,我认为@Kemp的答案显示了一种更简单的方法:只需使用datetime对象的timestamp方法。如果我使用时间而不是日期时间,它也可以工作。timestamp=time.mktime(time.strtime(ti,'%m/%d/%Y%I:%m%p'))