按键

时间:2017-07-12 21:18:04

标签: python json sorting

我有一个我要排序的JSON字符串。我想按'Name'字段对其进行排序。我无法为我的生活找到能够做到这一点的代码。

未排序:

{"RU": {"Name": "Russian", "TextDirection": "ltr"}, "FR": {"Name": "French", "TextDirection": "ltr"}, "AR": {"Name": "Arabic", "TextDirection": "rtl"}}

排序

{"AR": {"Name": "Arabic", "TextDirection": "rtl"}, "FR": {"Name": "French", "TextDirection": "ltr"}, "RU": {"Name": "Russian", "TextDirection": "ltr"}}

更新:

@jonrsharpe和@martineau指出。我需要使用数组或列表。我不太关心结构。最初弄乱排序顺序的是转换为json。通过使用数组,json没有使用排序顺序进行混乱。

[{"Code": "AR", "Name": "Arabic", "TextDirection": "rtl"}, {"Code": "FR", "Name": "French", "TextDirection": "ltr"}, {"Code": "RU", "Name": "Russian", "TextDirection": "ltr"}]

1 个答案:

答案 0 :(得分:1)

您可以使用OrderedDict在Python中实现带有有序键的字典。

但是,您无法保证JSON对象将按其他应用程序的顺序加载,因为本质上没有对字典进行排序(哈希表)。

因此,迭代键不会给你任何订单保证,除非你为Python和JavaScript使用特定的类,或者你把你的词典放到一个静态的数组中。

https://docs.python.org/3/library/collections.html#collections.OrderedDict

How do I sort a list of dictionaries by values of the dictionary in Python?