2013-03-01 5 views
0

В моей панели инструментов у меня есть профиль. У профилей есть теги. То, что я пытаюсь сделать, это бросить каждый тег, который прошел через парсер, в список. А затем этот список шаблону:Python: объект не имеет атрибута 'append' Ошибка

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

+0

@ Аноров :) :) .. –

2

Изменить

rss.append(rss_result)

в

rss_result.append(rss)

Вы хотите добавить элемент rss к списку, который rss_result.

Если у вас есть ошибка, как это полезно, чтобы попытаться разобрать, что ошибка на самом деле говорит вам:

Exception Value: object has no attribute 'append'

Там, кажется, проблема здесь при попытке вызова атрибута, добавить, так если вы оглянетесь в своем коде, вы увидите единственное место, где вы пытаетесь добавить что-то, это когда у вас есть rss.append(rss_result). В этом случае вы можете легко увидеть, что он пытается вызвать append на rss, и, посмотрев на свой код, вы можете видеть, что rss является контейнером для вывода feedparser, и вы не хотите ничего добавить к этому, вы хотите, чтобы объект, который будет добавлен к чему-то другому.

В этом случае вы хотите принять ваш список: rss_result и append переменную rss в конец этого пустого списка. следовательно: rss_result.append(rss)

0

ваш перепутал эту строку: rss.append (rss_result) следует rss_result.append (RSS)

Смежные вопросы