2009-12-28 45 views
2
  1. 我正在阅读使用python库“feedparser”的Facebook更新源。
  2. 我循环浏览Django模板中的条目集合,并显示结果。
  3. 更新后的字段以一个很长的字符串返回,这是我不熟悉的某种格式。在python中解析Facebook feed datetime?

    星期二,2009年12月01日23时55分52秒+0000

我怎么能......

A)使用Django的过滤器以清洁的日期时间在for循环模板。

......或者......

B)解析日期和视听形式的更新日期,esentially清洗日期项的收集是在视图中遍历之前。

注:我已经尝试了两种方法。 Django的日期过滤器不会识别它,而我试图解析字符串的iso8601库也没有。

有人有这方面的经验吗?谢谢你的帮助!

UPDATE:

使用从Django模板feedparser的updated_pa​​rsed值没有工作这么好。但滤波器,用于这事Django的片段已经存在**

Django的片段:http://www.djangosnippets.org/snippets/1595/

回答

4

使用entries[i].updated_parsed而不是entries[i].updated,并feedparser将返回解析9元组为您服务。 (Documentation

然后构建一个datetime对象,并将它传递给Django或自行格式化为字符串。

还有一个类似的问题here

+0

我喜欢你的解决方案,但传递元组到Django的过滤器似乎没有工作。当我使用日期过滤器时,我只是空白。也许有更好的方式来格式化它。 – 2009-12-28 03:17:51

+0

我更新了链接到Django筛选器的feedparser日期。 – 2009-12-28 03:28:49

2

这工作,但不是我最终的解决方案变成了什么。

该解决方案对我从Facebook返回的供稿条目集合进行迭代。然后我解析日期时间并将更新的属性设置为新的日期时间。 (另外,忽略+0000)

for entry in feed.entries: 
     entry.updated = datetime.strptime(entry.updated, "%a, %d %b %Y %H:%M:%S +0000") 

的条目集合返回到我现在可以使用Django的“日期”过滤器来格式化日期的模板。

+0

这工作得很好,但接受的解决方案利用+1更好的feedparser框架。 – 2009-12-28 03:29:25