回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一些Python代码,可以在两个开始日期之间的所有日期中迭代。开始日期始终为11月1日,结束日期始终为5月31日。但是,代码将遍历年份。我的代码是这样的:</p>
<pre><code>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...
</code></pre>
<p>在第一个循环完成之前,此代码可以正常工作。然后,它将“list1”和“list2”的下两个值作为2001和2002打印到日志中,然后产生以下错误:</p>
<pre><code>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
</code></pre>
<p>它似乎无法解析在第二次传递中分配给变量“x”的年份。有人能告诉我为什么吗?</p>
<p>谢谢</p>