Python:对象没有属性'append'错误

时间:2013-03-01 21:06:58

标签: python django parsing

在我的仪表板功能中,我有个人资料。个人资料有标签。我要做的是将通过解析器的每个标记放入一个列表中。然后将该列表添加到模板中:

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

我做错了什么?感谢您的帮助。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

更改

rss.append(rss_result)

rss_result.append(rss)

您希望将项rss附加到列表rss_result

如果您遇到这样的错误,尝试解析错误实际告诉您的内容会很有帮助:

  

异常值:对象没有属性'append'

在尝试调用属性时,似乎存在问题,追加,所以如果你回顾一下代码,你可以看到你试图追加某些内容的唯一地方,就是当你有rss.append(rss_result)时。在这种情况下,您可以轻松地看到它正在尝试在rss上调用追加,并且通过查看您的代码,您可以看到rssfeedparser输出的容器,并且您不会我想要附加任何内容,你希望将该对象附加到别的东西上。

在这种情况下,您希望将列表rss_resultappend rss变量放到此空列表的末尾。因此:rss_result.append(rss)

答案 2 :(得分:0)

你混淆了这一行:rss.append(rss_result) 应该是rss_result.append(rss)