gpt4 book ai didi

python - 如何保持传递给 jsonify() 函数的排序字典的顺序?

转载 作者:行者123 更新时间:2023-12-03 16:02:31 26 4
gpt4 key购买 nike

我正在尝试将排序字典传递给 jsonify() 函数,然后在 JS 代码中使用它来取出值。我看到的是,即使我传递了正确的值,由于某种原因它们被 jsonify 重新排序。


json_data = {
"11": {
"j_id": "out",
},
"aa": {
"j_id": "in",
},
"bb": {
"j_id": "out",
},
}

jkeys=json_data.keys()
sorted_json = sorted(jkeys, key=lambda x: json_data[x]['j_id'], reverse=False)

new_sorted=OrderedDict()
for rec in sorted_json:
new_sorted[rec]=json_data[rec]

print('sort dict: {}'.format(new_sorted))

输出是正确的,我可以看到正确的值,在我的情况下应该是:aa, 11, bb
>>> from collections import OrderedDict
>>>
>>> json_data = {
... "11": {
... "j_id": "out",
... },
... "aa": {
... "j_id": "in",
... },
... "bb": {
... "j_id": "out",
... },
... }
>>>
>>> jkeys=json_data.keys()
>>> sorted_json = sorted(jkeys, key=lambda x: json_data[x]['j_id'], reverse=False)
>>>
>>> new_sorted=OrderedDict()
>>> for rec in sorted_json:
... new_sorted[rec]=json_data[rec]
...
>>> print('sort dict: {}'.format(new_sorted))
sort dict: OrderedDict([('aa', {'j_id': 'in'}), ('11', {'j_id': 'out'}), ('bb', {'j_id': 'out'})])

不幸的是,当我将它传递给 jsonify() 函数,然后例如 console.log() 输出 flask 数据时,顺序变成这样:11,aa,bb。除此之外,我做了一些研究,发现 this stackoverflow 回答,导致一些 good documentation notes它明确指出不推荐将 JSON_SORT_KEYS 设置为 False 。然后我检查了 this github issue似乎问题在 flask 中没有完全解决。

在我的情况下解决它的最佳方法是什么?

最佳答案

在应用定义之后将此配置行添加到您的代码中:

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

关于python - 如何保持传递给 jsonify() 函数的排序字典的顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54446080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com