【问题标题】:json.loads changes order of the keys given in the string passed [duplicate]json.loads 更改传递的字符串中给定键的顺序[重复]
【发布时间】: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解析,并以相同的顺序显示数据。

标签: python json django


【解决方案1】:

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

【讨论】:

  • 我也试过这个选项。甚至ordereddict给了我和json.loads一样的顺序
  • 您只能按顺序输出(即打印/显示)字典,但不能按顺序存储字典。
猜你喜欢
  • 2021-12-06
  • 2017-10-09
  • 2017-02-19
  • 1970-01-01
  • 2015-01-22
  • 2021-11-11
  • 2013-11-14
  • 2019-01-11
  • 1970-01-01
相关资源
最近更新 更多