我在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"}]
答案 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})