如何在Flask中jsonify列表?
目前Flask
会在对列表进行json化时产生错误。
我知道可能有安全的原因https://github.com/mitsuhiko/flask/issues/170 ,但我仍然想有一种方式来返回一个JSON列表如下:
[ {'a': 1, 'b': 2}, {'a': 5, 'b': 10} ]
代替
{ 'results': [ {'a': 1, 'b': 2}, {'a': 5, 'b': 10} ]}
在响应application/json
请求。 如何使用Jsonify在Flask中返回一个JSON列表?
jsonify
由于安全原因阻止你这样做。
无论如何,只要在Python标准库中使用json.dumps
。
你不能,但你可以这样做,无论如何。 我需要这个jQuery的file upload
import json # get this object from flask import Response #example data: js = [ { "name" : filename, "size" : st.st_size , "url" : url_for('show', filename=filename)} ] #then do this return Response(json.dumps(js), mimetype='application/json')
这是为我工作。 你使用哪个版本的Flask?
from flask jsonify ... @app.route('/test/json') def test_json(): list = [ {'a': 1, 'b': 2}, {'a': 5, 'b': 10} ] return jsonify(results = list)
Flask的jsonify()
方法现在序列化这个提交的顶层数组,从Flask 0.11开始。
为了方便起见,你可以传入一个Python列表: jsonify([1,2,3])
或传入一系列args
: jsonify(1,2,3)
两者都将被序列化为一个JSON顶级数组: [1,2,3]
详情请见: http : //flask.pocoo.org/docs/dev/api/#flask.json.jsonify
解决了,没有大惊小怪。 你可以懒惰,使用jsonify,所有你需要做的就是传入items = [你的列表]。
看看这里的解决scheme
在一个瓶子里的列表可以很容易使用jsonify进行jsonify :
from flask import Flask,jsonify app = Flask(__name__) tasks = [ { 'id':1, 'task':'this is first task' }, { 'id':2, 'task':'this is another task' } ] @app.route('/app-name/api/v0.1/tasks',methods=['GET']) def get_tasks(): return jsonify({'tasks':tasks}) #will return the json if(__name__ == '__main__'): app.run(debug = True)
josonify工作..但如果你打算只是传递一个数组没有'结果'键,你可以使用python json库。 以下转换适用于我..
import json @app.route('/test/json') def test_json(): list = [ {'a': 1, 'b': 2}, {'a': 5, 'b': 10} ] return json.dumps(list))
如果你正在从字面上寻找在烧瓶中返回一个JSON列表的方式,并且完全确定你的variables是一个列表,那么简单的方法是(其中bin是1和0的列表):
return jsonify({'ans':bin}), 201
最后,在你的客户端,你将获得类似的东西
{“ans”:[0.0,0.0,1.0,1.0,0.0]}