我的猜測是,這是因爲你正在使用字典(散列圖)。它是不可取的。 你可以做的是:
from collections import OrderedDict
data = OrderedDict()
data['list'] = OrderedDict()
data['list']['one'] = OrderedDict()
data['list']['one']['id'] = '12'
data['list']['one']['idesc'] = ...
data['list']['two'] = ...
這使得通過輸入的順序進行排序。 因爲傳統字典的性質(和速度)使得排序/訪問順序根據用法,字典中的項目以及許多其他因素而變化,所以知道字典/散列表的輸出是「不可能的」。 因此,您需要將您的字典在發送給json之前傳遞給sort()
函數,或者使用較低版本的字典OrderedDict
(請參見上文)。
非常感謝@MarcoNawijn檢查JSON的來源,不尊重字典的排序結構,這意味着您必須自己構建JSON字符串。
如果您的JSON字符串另一端的解析器支持您的命令(我懷疑),您可以將它傳遞給一個函數,該函數將生成OrderedDict
的常規文本字符串表示形式並根據JSON標準格式化字符串。然而,這會比現在佔用更多的時間,因爲我並不是100%確定JSON字符串的RFC。
請告訴我們你的代碼傾倒這個JSON到一個文件 – TerryA