2009-12-28 49 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