我使用python-twitter来获取推文的日期,并尝试使用time.strptime()
函数对其进行解析。当我以交互方式进行时,一切正常。当我从我的bash调用该程序时,我得到一个ValueError
说(例如):
time data u'Wed Aug 12 08:43:35 +0000 2009' does not match
format '%a %b %d %H:%M:%S +0000 %Y'
代码如下所示:
api = twitter.Api(username='username', password='pw')
user = api.GetUser(username)
latest = user.GetStatus()
date = latest.GetCreatedAt()
date_struct = time.strptime(date, '%a %b %d %H:%M:%S +0000 %Y')
抛出上述异常的。
它适用于交互式shell:
>>> user = api.GetUser('username')
>>> latest = user.GetStatus()
>>> date = latest.GetCreatedAt()
>>> date
u'Wed Aug 12 08:15:10 +0000 2009'
>>>> struct = time.strptime(date, '%a %b %d %H:%M:%S +0000 %Y')
>>>> struct
time.struct_time(tm_year=2009, tm_mon=8, tm_mday=12, tm_hour=8, tm_min=15, tm_sec=10, tm_wday=2, tm_yday=224, tm_isdst=-1)
有人知道为什么会这样吗?
我正在使用Ubuntu 9.04,Python 2.6.2和python-twitter 0.6。 unicode中的所有文件。
答案 0 :(得分:2)
要尝试的事情:
(1)您的互动会话和“bash”是否可能使用不同的区域设置?将print time.strftime(some known struct_time)
放入您的脚本中,查看日期和月份是否以其他语言显示。
(2)在您的脚本中添加print repr(date)
,以明确地显示您从latest.GetCreatedAt()
电话中获得的内容。