Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么是无序的JSON值?_Python_Json - Fatal编程技术网

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": "

我有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"}]

字典不需要订购


将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总是被排序的,它是语言规范的一部分:谢谢,我不知道这一点