gpt4 book ai didi

python - 类型错误 : 'datetime.datetime' object is not callable

转载 作者:太空狗 更新时间:2023-10-29 20:10:55 28 4
gpt4 key购买 nike

我有一些 Python 代码在两个开始日期之间的所有日子里进行迭代。开始日期始终为 11 月 1 日,结束日期始终为 5 月 31 日。但是,代码会迭代多年。我的代码是这样的:

import time
from datetime import datetime
from datetime import date, timedelta as td

list1 = [2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013]
list2 = [2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014]


for x, y in zip(list1, list2):
print "list1 - " + str(x)
print "list2 - " + str(y)


d1 = date(x,11,01)
d2 = date(y,5,31)

delta = d2 - d1



for i in range(delta.days + 1):

time1 = str(d1 + td(days=i))
time2 = time1.split("-", 1)[0]
time3 = time1.split("-", -1)[1]
time4 = time1.rsplit("-", 1)[-1]

time2 = int(time2)
time3 = int(time3)
time4 = int(time4)

date = datetime(year=time2, month=time3, day=time4)

...some processing here...

此代码在第一个循环完成之前工作正常。然后它会在产生以下错误之前将“list1”和“list2”的下两个值作为 2001 和 2002 打印到日志中:

Traceback (most recent call last):
File "C:\Python27\newtets\newtets\spiders\test3.py", line 17, in <module>
d1 = date(x,11,01)
TypeError: 'datetime.datetime' object is not callable

在第二次传递时,它似乎没有解析分配给变量“x”的年份。谁能告诉我这是为什么?

谢谢

最佳答案

这是因为您有一个名为 date 的变量,它正在隐藏导入的 datetime.date。使用不同的变量名。

演示:

>>> from datetime import date, datetime
>>> date(01,11,01)
datetime.date(1, 11, 1)
>>> date = datetime(year=2014, month=1, day=2)
>>> date(01,11,01)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'datetime.datetime' object is not callable

关于python - 类型错误 : 'datetime.datetime' object is not callable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275094/

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