json.loads 更改传递的字符串中给定键的顺序[重复]

Posted

技术标签:

【中文标题】json.loads 更改传递的字符串中给定键的顺序[重复]【英文标题】:json.loads changes order of the keys given in the string passed [duplicate] 【发布时间】:2014-10-24 02:23:45 【问题描述】:
 >>> x='"Title":"test","Description":"test des","Colo":"test colo1","Expected Date":"1234","Comboboxes":"option1","Checkboxes":["option1","option2"]'
 >>> x
'"Title":"test","Description":"test des","Colo":"test colo1","Expected Date":"1234","Comboboxes":"option1","Checkboxes":["option1","option2"]'
 >>> json.loads(x)
'Expected Date': '1234', 'Description': 'test des', 'Title': 'test', 'Comboboxes': 'option1', 'Colo': 'test colo1', 'Checkboxes': ['option1', 'option2']

请帮助我按照给定字符串的顺序获取这些键。

【问题讨论】:

JSON 对象键未排序。 为什么它们的顺序需要相同? 我实际上是在 django 中创建一个动态表单,它以 json 格式存储数据。下次用户需要查看数据时,我需要通过json解析,并以相同的顺序显示数据。 【参考方案1】:

json.loads() 生成一个 Python 字典,该字典从内部哈希表中获取排序。您可以使用sorted() 对它们进行排序,但您不能订购标准字典。如果需要,您可以使用OrderedDict

【讨论】:

我也试过这个选项。甚至ordereddict给了我和json.loads一样的顺序 您只能按顺序输出(即打印/显示)字典,但不能按顺序存储字典。

以上是关于json.loads 更改传递的字符串中给定键的顺序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Hive 查询以获取字符串中给定键的值

python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分

python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分

python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分

json.dumps()和json.loads()

python中json.dumps()和json.dump() 以及 json.loads()和json.load()的区分