为什么要使用无序JSON值?

时间:2018-07-09 08:20:52

标签: python json

我在python上有下一个代码,可将两个列表转换为json:

JSONRules = json.dumps(
    [{'RuleAction':action, 'RuleName':name} for action, name in zip(RulesAction, RulesName)]
)

但是输出是完全随机的,为什么?

出[1]:

[{"RuleAction": "0", "RuleName": "Policy4"}, {"RuleAction": "0", "RuleName": "Policy5"}]

出[2]:

[{"RuleName": "Policy4", "RuleAction": "0"}, {"RuleName": "Policy5", "RuleAction": "0"}]

3 个答案:

答案 0 :(得分:4)

未订购字典。

sort_keys=True添加到json.dumps()调用中,以始终对JSON输出中的对象键进行排序。

答案 1 :(得分:3)

Python字典在Python 3.7之前是unordered。您可以使用sort_keys=True中的json.dumps()标志。有关json encoder and decoder

的更多信息

答案 2 :(得分:0)

因为python中的json被解析为字典,而python中的普通字典却是无序的,如果要排序,请使用排序的字典

from collections import OrderedDict

OrderedDict({"a":1})