Flask当jsonifying列表时,目前会引发错误.
我知道可能有安全原因https://github.com/mitsuhiko/flask/issues/170,但我仍然希望有一种方法来返回如下的JSON列表:
[
{'a': 1, 'b': 2},
{'a': 5, 'b': 10}
]
Run Code Online (Sandbox Code Playgroud)
代替
{ 'results': [
{'a': 1, 'b': 2},
{'a': 5, 'b': 10}
]}
Run Code Online (Sandbox Code Playgroud)
响应application/json请求.如何使用Jsonify在Flask中返回JSON列表?
mia*_*nos 73
你不能但是你可以这样做.我需要这个用于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')
Run Code Online (Sandbox Code Playgroud)
Fog*_*ird 54
jsonify出于安全原因,阻止您在Flask 0.10及更低版本中执行此操作.
无论如何,只需json.dumps在Python标准库中使用即可.
http://docs.python.org/library/json.html#json.dumps
Geo*_*ath 15
这对我有用.你使用的是哪个版本的Flask?
from flask import jsonify
...
@app.route('/test/json')
def test_json():
list = [
{'a': 1, 'b': 2},
{'a': 5, 'b': 10}
]
return jsonify(results = list)
Run Code Online (Sandbox Code Playgroud)
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 = [你的列表].
看看这里的解决方案
https://github.com/mitsuhiko/flask/issues/510
小智 5
烧瓶中的清单可以使用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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
106410 次 |
| 最近记录: |