2012-07-24 88 views
2

我在ISO格式分裂時間戳按小時

[u"2000-01-01T00:00:00+00:00", u"2000-01-01T00:00:00+00:00", ... ]

我試圖分裂按小時每串時間戳列表。然而,使用"string".strp(":")顯然不會工作,因爲too many values to unpack錯誤(由於幾個:),並且"string".strp(":%S")給出值錯誤more than one value to unpack。 有什麼建議嗎?

回答

2

iso8601是一個奇妙的,開放源碼的Python模塊來解析ISO日期時間字符串http://code.google.com/p/pyiso8601/

它把它變成Python的原生datetime類型應該是比較容易的工作。

+0

感謝您的幫助。我會試試這個。 – ehertele 2012-07-24 18:07:33

2

你有兩種選擇。您可以使用datetime.datetime.strptime爲您提供datetime對象,然後只需執行dt.hour,您可能想要執行此操作,具體取決於您對這些對象所做的操作。

或者,如果您想按照原樣使用字符串處理,則可以使用str.split(如上所示),但使用可選的第二個參數(即分割的最大次數),所以s.split(":", 1)。或者類似地,str.partition,它基本上會做同樣的事情,但不會爲沒有「:」的事物引發錯誤。使用這兩種方法,您需要先使用切片剝離開始時的事物。

+0

打我吧... – 2012-07-24 15:23:06

+0

我想嘗試str.partition而不提高第二個值的錯誤;你將如何切片來解決這個問題? (我不確定遵循) – ehertele 2012-07-24 16:16:40

+0

'value,_,_ = u「2000-01-01T00:00:00 + 00:00」.partition(「:」)' 'hour = value [-2: ]' – Julian 2012-07-24 16:25:46