2013-03-01 66 views
0

在我的儀表板功能中,我有一個配置文件。配置文件有標籤。我想要做的是將每個通過解析器的標籤放入列表中。然後該列表的模板:Python:對象沒有屬性'追加'錯誤

import feedparser 
rss_result = [] 
tags = profile.tags.all() 
for tag in tags: 
    rss = feedparser.parse(tag.tag_rss) #tag.tag_rss is a url string 
    rss.append(rss_result) 
context['tag_rss'] = rss_result 

它拋出這個錯誤:Exception Value: object has no attribute 'append

我在做什麼錯?感謝您的幫助提前。

回答

5

我想你的意思是做rss_result.append(rss)。你有它倒退。

另外,你可以用更少的行來寫一個列表理解。儘管如此,完全取決於你。

import feedparser 
tags = profile.tags.all() 
context['tag_rss'] = [feedparser.parse(tag.tag_rss) for tag in tags] 
# if you don't need to re-use rss_result, this should work okay 
+0

就是這樣。謝謝! – Modelesq 2013-03-01 21:09:58

+0

@Anorov :) :) .. – 2013-03-01 21:10:49

2

變化

rss.append(rss_result)

rss_result.append(rss)

你想要的項目rss添加到列表中,這是rss_result

當你有這樣的錯誤是有幫助,試圖分析出什麼錯誤實際上是告訴你:

Exception Value: object has no attribute 'append'

似乎有試圖調用屬性,追加時,這裏是一個問題,所以如果你回頭看你的代碼,你可以看到你想要追加的東西的唯一地方,就是當你有rss.append(rss_result)。在這種情況下,您可以很容易地看到它試圖調用rss上的追加,並通過查看代碼可以看到rssfeedparser輸出的容器,並且您不希望追加任何內容,您希望對象被附加到別的東西上。

在這種情況下,您希望將您的列表rss_resultappend變量rss變量添加到此空列表的末尾。因此:rss_result.append(rss)

0

你混了這一行:rss.append(rss_result) 應rss_result.append(RSS)

相關問題