2017-07-12 75 views
-2

我有一個我想排序的JSON字符串。我想按'Name'字段排序。我不能爲我的生活找到這樣做的代碼。按鍵字以外的鍵排序JSON

未分類:

{"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"}}

更新:

正如@喬恩rsharpe和@martineau指出。我需要使用數組或列表。我並不太在意結構。最初弄亂排序順序的是轉換爲json。通過使用一個數組,json並沒有使用排序順序。

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

JSON對象(和它們映射到Python字典)沒有保證的順序,所以它不是清楚你的意思。 – jonrsharpe

+0

@jonrsharpe:我刪除了對鍵的引用。 – SteveB

+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?

+0

第二個鏈接與這個問題無關,沒有涉及到的列表。 –

+0

這是以前在答案中給出的領導參考。 – Fabien