Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用time.mktime(datetime.strtime(ti,';%m/%d/%Y%I:%m%p';)时,需要元组或结构时间参数时出错_Python_Python 3.x_Datetime - Fatal编程技术网

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'))