我有一个 ISO 格式的时间戳列表
[u"2000-01-01T00:00:00+00:00", u"2000-01-01T00:00:00+00:00", ... ]
我正在尝试按小时拆分每个字符串。但是,使用"string".strp(":")
显然不会起作用,因为too many values to unpack
错误(由于几个 :'s)并"string".strp(":%S")
给出more than one value to unpack
. 有任何想法吗?
我有一个 ISO 格式的时间戳列表
[u"2000-01-01T00:00:00+00:00", u"2000-01-01T00:00:00+00:00", ... ]
我正在尝试按小时拆分每个字符串。但是,使用"string".strp(":")
显然不会起作用,因为too many values to unpack
错误(由于几个 :'s)并"string".strp(":%S")
给出more than one value to unpack
. 有任何想法吗?
iso8601
是一个很棒的开源 python 模块来解析 ISO 日期时间字符串http://code.google.com/p/pyiso8601/
它将它变成了 python 的原生datetime
类型,应该更容易使用。
你有两个选择。您可以使用datetime.datetime.strptime
给您datetime
对象,然后只做dt.hour
,您可能还是想做,这取决于您对这些对象所做的事情。
或者,或者,如果您只想按原样使用字符串处理,则可以使用str.split
如您所展示的那样,但带有可选的第二个参数,即最大拆分次数,因此s.split(":", 1)
. 或者类似地,str.partition
它基本上会做同样的事情,但不会为没有“:”的东西引发错误。使用这两种方法,您需要在开始时使用切片剥离这些东西。