我试图遍历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'。

抱歉,这听起来很傻,这是我第一次编程。

最佳答案

smoketestdatetime.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')

09-07 02:33