Я пытаюсь передать отсортированный словарь в функцию 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 () вывод данных фляги, порядок становится таким: 11, aa, bb.В дополнение к этому, я провел некоторое исследование и нашел этот ответ stackoverflow, что привело к хорошим примечаниям к документации , в которых четко указано, что установка JSON_SORT_KEYS в False не рекомендуется.Затем я проверил эту проблему с github и похоже, что проблема не полностью решена в колбе.
Как лучше всего исправить ее в моем случае?