2013-03-01 71 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)

相关问题