Return JSON response from Flask view Return JSON response from Flask view python python

Return JSON response from Flask view


As of Flask 1.1.0 a view can directly return a Python dict and Flask will call jsonify automatically.

@app.route("/summary")def summary():    d = make_summary()    return d

If your Flask version is less than 1.1.0 or to return a different JSON-serializable object, import and use jsonify.

from flask import jsonify@app.route("/summary")def summary():    d = make_summary()    return jsonify(d)


jsonify serializes the data you pass it to JSON. If you want to serialize the data yourself, do what jsonify does by building a response with status=200 and mimetype='application/json'.

from flask import json@app.route('/summary')def summary():    data = make_summary()    response = app.response_class(        response=json.dumps(data),        status=200,        mimetype='application/json'    )    return response


Pass keyword arguments to flask.jsonify and they will be output as a JSON object.

@app.route('/_get_current_user')def get_current_user():    return jsonify(        username=g.user.username,        email=g.user.email,        id=g.user.id    )
{    "username": "admin",    "email": "admin@localhost",    "id": 42}

If you already have a dict, you can pass it directly as jsonify(d).