Prevent Flask jsonify from sorting the data

Question:

Each time I use jsonify, I get the JSON keys sorted alphabetically. I don’t want the keys sorted. Can I disable the sorting done in jsonify?

from flask import request, jsonify

@app.route('/', methods=['POST'])
def index():
    json_dict = request.get_json()
    user_id = json_dict['user_id']
    permissions = json_dict['permissions']
    data = {'user_id': user_id, 'permissions': permissions}
    return jsonify(data)
Asked By: Athul Muralidharan

||

Answers:

Yes, you can modify this using the config attribute:

app = Flask(__name__)
app.config['JSON_SORT_KEYS'] = False

However, note that this is warned against explicitly in the documentation:

By default Flask will serialize JSON objects in a way that the keys
are ordered. This is done in order to ensure that independent of the
hash seed of the dictionary the return value will be consistent to not
trash external HTTP caches. You can override the default behavior by
changing this variable. This is not recommended but might give you a
performance improvement on the cost of cacheability.

Answered By: juanpa.arrivillaga
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.