尝试遍历日期范围但无法调用对象

时间:2019-07-13 18:17:37

标签: python

我试图遍历一系列日期并将结果存储在列表中。

我收到以下错误消息:

TypeError: 'datetime.timedelta' object is not callable

start = date.today() - timedelta(days=1)
dateList = []
end = 30
for i in range(0, end, 1):
    dateList.append(start - timedelta(days=i))

2 个答案:

答案 0 :(得分:1)

您需要导入“ datetime”模块,此代码才能正常工作。如果您输入:

from datetime import *

在代码的顶部,然后它将起作用。但是,这种导入在Python中被认为是不好的做法,因此,如果直接引用“ datetime”模块,效果会更好:

import datetime

start = datetime.date.today() - datetime.timedelta(days=1)
dateList = []
end = 30
for i in range(0, end, 1):
    dateList.append(start - datetime.timedelta(days=i))

答案 1 :(得分:0)

Timedelta返回组成元组对象的部分(天,秒,微秒)。您必须提取元素以在开始变量分配中进行加/减运算

使用

分别访问它们
var.days, var.seconds, var.microseconds

您也没有导入datetime模块以使代码正常工作。我推荐此代码。

import datetime

td = datetime.timedelta(days=1)
start = datetime.today() - td.days
....
td = datetime.timedelta(days=i)
dateList.append(start - td.days)