如何在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

http://docs.python.org/library/json.html#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])或传入一系列argsjsonify(1,2,3)

两者都将被序列化为一个JSON顶级数组: [1,2,3]

详情请见: http : //flask.pocoo.org/docs/dev/api/#flask.json.jsonify

解决了,没有大惊小怪。 你可以懒惰,使用jsonify,所有你需要做的就是传入items = [你的列表]。

看看这里的解决scheme

https://github.com/mitsuhiko/flask/issues/510

在一个瓶子里的列表可以很容易使用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]}