我的烧瓶应用程序出现“设置”错误我一直在编写RSS提要网络应用程序,但目前我遇到了一个我无法弄清楚的错误;这是我的代码:
import feedparser
from flask import Flask
from flask import render_template
app = Flask(__name__)
RSS = {"http://feeds.bbci.co.uk/news/rss.xml",
"http://rss.iol.io/iol/news", "http://feeds.foxnews.com/foxnews/latest", "http://rss.cnn.com/rss/edition.rss"}
#error occurs here
@app.route("/")
@app.route("/<publication>")
def get_news(publication="bbc"):
#ERROR OCCURS HERE
feed = feedparser.parse(RSS[publication])
first_article = feed['entries'][0]
return render_template("home.html",
title=first_article.get("title"),
published=first_article.get("publication"),
summary=first_article.get("summary"))
if __name__ == "__main__":
app.run(debug=True, port=5000)
我在这两行中得到了错误
feed = feedparser.parse(RSS[publication])
first_article = feed['entries'][0]
无法弄清楚实际错误
答案 0 :(得分:5)
正如Iron Fist所指出的那样,filter['col2']
filter['col3']
是一个集合(不可订阅),尽管它看起来好像是在尝试将它用作字典。根据您用于RSS
的默认值,我猜测您想要这样的内容:
get_news
答案 1 :(得分:0)
正如Iron Fist所说,似乎你正在定义一个集合并将其用作字典。很难确定,但对于我在代码中看到的内容,RSS实际上应该是一个字典,使用提供者的名称作为关键。所以:
RSS = {"bbc":"http://feeds.bbci.co.uk/news/rss.xml",
"iol":"http://rss.iol.io/iol/news",
"foxnews":"http://feeds.foxnews.com/foxnews/latest",
"cnn":"http://rss.cnn.com/rss/edition.rss"}