我在这里点击Hacker news API ,并希望获得通过JSON获得的每个帖子的详细信息。我想将此JSON发送到我的React前端。
此请求需要很长时间。我需要怎么做才能发送回复?
@app.route('/api/posts')
def get_posts():
r = requests.get('https://hacker-news.firebaseio.com/v0/askstories.json?print=pretty')
data = r.text
jsonData = []
for post in data:
r = requests.get('https://hacker-news.firebaseio.com/v0/item/'+post+'.json?print=pretty')
r.text
jsonData.append(r.text)
jsonData = jsonify(jsonData)
print jsonData
return jsonData
您正在查询json API并将响应视为文本:
r = requests.get('https://hacker-news.firebaseio.com/v0/askstories.json?print=pretty')
data = r.text
因此,r.text
它将是字符串“ [1234,1235,1236]”,而不是整数列表。
因此,当您遍历您的工作时for post in data
,您会得到每个字符:
for post in data:
print(post)
会给你:
[
1
2
3
4
,
...etc
因此,您实质上是在向黑客新闻API查询数百个无效帖子,而不是数十个实际帖子。您应该将json
as视为json,方法是使用请求中内置的json功能:data = r.json()
这将为您提供要迭代的数字列表-您还需要更改连接数据以创建url字符串(请使用.format
)的错误方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句