2013-01-22 21 views
1

我想從rrule返回的列表中迭代一個函數,並不斷獲取「object has no attribute'getitem'」消息。這是否意味着我首先必須「解析」r​​rule的結果才能夠將它們用於迭代?Python從dateutil迭代過rrule

實施例代碼

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

確切錯誤是類型錯誤: 'datetime.datetime' 對象沒有屬性 '的GetItem'。

對不起,這聽起來有點笨,這是我第一次編程。

回答

2

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') 
+0

上帝,我覺得愚蠢:)謝謝一堆(再次eumiro!)。 dateID與您的完全相同,hourID僅爲小時。以爲我可以通過其他方式提取它。將來要記住這一點。 – panta

+0

@panta - 如果'hourID'只有幾小時,請使用'smoketest.strftime('%H')'。如果你需要它作爲一個整數,使用'smoketest.hour'。 – eumiro