我正在使用Flask和News API API构建新闻webapp。我想将新闻源附加到基本URL(newsapi_url)并从各种来源获取新闻。下面是我的代码示例。它有点算法,而不是纯粹的功能。
sources=[
'al-jazeera-english',
'ars-technica',
'business-insider',
'buzzfeed',
]
@app.route('/')
def home():
for source in sources:
newsapi_url='https://newsapi.org/v1/articles?source={}&sortBy=latest&apiKey='.format(source)
articles=requests.get(newsapi_url+newsapi_key)
parsed=articles.json()
try:
source=parsed['source']
articles=parsed['articles']
return render_template('news.html', source=source, articles=articles)
except KeyError:
return render_template('error.html')
我想通过循环遍历列表的长度,然后从创建的URL获取新闻,将列表中的新闻源添加到基本URL(newsapi_url)。
列表理解可行,但我无法弄清楚这种逻辑是怎样的。
答案 0 :(得分:0)
这样的东西?
def home():
results = []
for source in sources:
newsapi_url = 'https://newsapi.org/v1/articles?source={}&sortBy=latest&apiKey='.format(source)
articles = requests.get(newsapi_url + newsapi_key)
parsed = articles.json()
if 'source' in parsed and 'articles' in parsed:
results.append(parsed)
return render_template('news.html', results=results)