Python 遍历 dateutil 的 rrule

1 投票
1 回答
2624 浏览
提问于 2025-04-17 13:20

我正在尝试对从rrule返回的列表进行循环处理,但总是收到“对象没有属性‘getitem’”的错误提示。这是不是意味着我必须先对rrule的结果进行“解析”,才能用它们进行循环呢?

示例代码

for smoketest in rrule.rrule(rrule.HOURLY, dtstart=startD, until=endD):
  print smoketest
  dateID = smoketest[0:10]
  hourID = smoketest[11:13]

具体的错误是TypeError: 'datetime.datetime'对象没有属性‘getitem’。

抱歉如果这听起来有点傻,这是我第一次接触编程。

1 个回答

3

smoketest 是一个 datetime.datetime 对象,而不是字符串。你在 print 中看到的只是它的字符串表现形式。其实,datetime.datetime 对象能提供更多功能。

你需要把 smoketest 转换成日期字符串和时间字符串吗?可以使用 strftime 方法:

for smoketest in rrule.rrule(rrule.HOURLY, dtstart=startD, until=endD):
    dateID = smoketest.strftime('%Y-%m-%d')
    hourID = smoketest.strftime('%H:%M:%S')

撰写回答