Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 防止Flask jsonify对数据进行排序_Python_Json_Flask - Fatal编程技术网

Python 防止Flask jsonify对数据进行排序

Python 防止Flask jsonify对数据进行排序,python,json,flask,Python,Json,Flask,每次使用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['permiss

每次使用
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)

可以,您可以使用
config
属性修改此选项:

app = Flask(__name__)
app.config['JSON_SORT_KEYS'] = False
但是,请注意,以下文件中明确警告了这一点:

默认情况下,Flask将以键 我们已经订好了。这样做是为了确保独立于 字典的哈希种子返回值将与not一致 回收外部HTTP缓存。您可以通过以下方式覆盖默认行为: 更改此变量。这是不推荐的,但可能会给你一个 可缓存性成本方面的性能改进


为什么不需要排序数据?它的结构仍然相同,没有太大区别。是的,你不会碰巧依赖JSON中键的顺序,是吗?因为我想知道这是否可能实现,因为我想探索,而且相当迂腐。如果你在传递dict,它已经有未定义的顺序,所以无法获得“发送时的值”.好吧,本着学究的精神,JSON对象是无序的集合。从Python 3.6开始应该注意,dicts保留了它们的插入顺序,因此文档中的参数在一般意义上不再适用。我认为答案应该更新,因为这是@hynek的一个重要旁注。@hynek似乎仍然适用于我的python v3.7.3和Flask v1.1.1版本,没有人说它不再有效;只是现在文档报价中用于排序键的rational为零。让它留在那里可能会让新用户感到困惑。@hynek我需要我的dict按照键的相反顺序。所以我也这样做并返回响应。但是当通过jsonify时,它会返回到相同的顺序。我如何克服这个问题?