2017-02-28 71 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}'