2017-02-28 50 views
1

我想用json python模塊構建一個JSON字符串。Scrambled JSON字符串

我特別希望這樣的結構:

data = { 
    'Id' : deviceId, 
    'UnixTime' : unixTime, 
    'Temp' : round(temperature, 2), 
    'Rh' : round(humidity,2), 
} 

但是,當我執行:jsonString = json.dumps(data)

所有領域都打亂。

有何建議?

+1

這是因爲有沒有**字典中的順序** ... –

回答

3

Python dict和JSON對象都是無序集合。

使用sort_keys參數,按鍵排序:如果你需要一個特定的順序

>>> import json 
>>> json.dumps({'a': 1, 'b': 2}) 
'{"b": 2, "a": 1}' 
>>> json.dumps({'a': 1, 'b': 2}, sort_keys=True) 
'{"a": 1, "b": 2}' 

;你可以使用collections.OrderedDict:

>>> from collections import OrderedDict 
>>> json.dumps(OrderedDict([("a", 1), ("b", 2)])) 
'{"a": 1, "b": 2}' 
>>> json.dumps(OrderedDict([("b", 2), ("a", 1)])) 
'{"b": 2, "a": 1}'