gpt4 book ai didi

python - time.struct_time 的 structseq() 错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:50:47 32 4
gpt4 key购买 nike

这是给出错误的python脚本:

>>> import time
>>> t=[ ]
>>> t.append(time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0,tm_min=0,tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: structseq() takes at most 2 arguments (9 given)

这个也给出同样的错误:

>>> import time 
>>> t=time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0,tm_min=0,tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: structseq() takes at most 2 arguments (9 given)

最佳答案

time.struct_time 期望它的第一个参数是一个包含 9 个元素的序列:

In [58]: time.struct_time((2000,11,30,0,0,0,3,335,-1))
Out[58]: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

但请注意,这会过度指定日期时间。

例如,您可以将 2000 年 1 月 1 日指定为 tm_yday = 100,这显然不是真的:

In [72]: time.struct_time((2000,1,1,0,0,0,3,100,-1))
Out[72]: time.struct_time(tm_year=2000, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=100, tm_isdst=-1)

因此,最好使用日期时间并调用其 timetuple() 方法来获取 time.struct_time:

In [70]: import datetime as dt

In [71]: dt.datetime(2000,11,30,0,0,0).timetuple()
Out[71]: time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

关于python - time.struct_time 的 structseq() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9551514/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com