Python 为什么是无序的JSON值?
我有python上的下一个代码,它将两个列表转换为json:Python 为什么是无序的JSON值?,python,json,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": "
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"}]
字典不需要订购
将sort_keys=True添加到json.dumps调用中,以始终对json输出中的对象键进行排序。因为python中的json被解析为字典,而python中的普通字典是无序的。如果要排序,则使用有序dict
from collections import OrderedDict
OrderedDict({"a":1})
Python dict在Python 3.7之前是无序的。您可以使用json.dumps中的sort_keys=True标志。有关您使用的Python版本的更多信息?在Python2中,字典是不排序的。注意,由于Python3.7,dict总是被排序的,它是语言规范的一部分:谢谢,我不知道这一点