time.strptime()和python-twitter出错

时间:2009-08-12 09:07:03

标签: python twitter

我使用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中的所有文件。

1 个答案:

答案 0 :(得分:2)

要尝试的事情:

(1)您的互动会话和“bash”是否可能使用不同的区域设置?将print time.strftime(some known struct_time)放入您的脚本中,查看日期和月份是否以其他语言显示。

(2)在您的脚本中添加print repr(date),以明确地显示您从latest.GetCreatedAt()电话中获得的内容。