python - simplejson 返回值不按顺序

标签 python django json simplejson

<分区>

在 Django 中使用 simplejson 时,有时我需要严格按顺序发送信息。

values = {"entry1":"value1","entry2":"value2","entry3":"value3"}
return HttpResponse(simplejson.dumps(values),content_type="application/json")

这就是它返回的内容

{"entry2": "value2", "entry3": "value3", "entry1": "value1"}

但我希望它返回这个:

{"entry1":"value1","entry2":"value2","entry3":"value3"}

如何在simplejson中按顺序发送信息?

最佳答案

I sometimes need to send the information strictly in order.

那么不要使用字典,使用元组列表:

values = [("entry1", "value1"), ("entry2", "value2"), ("entry3", "value3")]

字典 JSON 对象没有固定的顺序。既不会保留您的输入顺序,也不需要保留。

引用JSON RFC :

An object is an unordered collection of zero or more name/value pairs [...]

和 Python dict.items()文档:

Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary’s history of insertions and deletions.

关于python - simplejson 返回值不按顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17789355/

相关文章:

在网格中查找相邻单元格的 Pythonic 和有效方法

python - 中间件筛选器页面的安全问题

python - Django:django-tables2 分页和过滤

php - 如何在 PHP 中解码 JSON 字符串?

python - Steam API 获取特定游戏的历史玩家数

python - 如何使用 python 3 将专辑封面添加到 mp3 文件?

python - 使用 Keras 和 TensorFlow 找到最大化神经网络输出的输入

javascript - Jquery 图像书签在 Django 中不起作用

java - 如何正确序列化/反序列化Java Object[]?

python - 在列表和字符串中查找匹配的单词