一尘不染

防止Flask jsonify对数据进行排序

json

每次使用时jsonify,我都会按字母顺序对JSON键进行排序。我不希望按键排序。我可以禁用在中进行的排序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)

阅读 302

收藏
2020-07-27

共1个答案

一尘不染

是的,您可以使用以下config属性对此进行修改:

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

但是,请注意,在文档中明确警告不要这样做:

默认情况下,Flask将以对密钥进行排序的方式序列化JSON对象。这样做是为了确保独立于字典的哈希种子,返回值将保持一致,以免浪费外部HTTP缓存。您可以通过更改此变量来覆盖默认行为。不建议这样做,但可以提高可缓存性的性能。

2020-07-27