为什么是无序的JSON值?

2024-06-01 13:05:49 发布

您现在位置:Python中文网/ 问答频道 /正文

下一个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"}]

Tags: 代码nameinjson列表foractionzip
3条回答

字典是不订的。你知道吗

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

Python dict早于python3.7。您可以使用来自json.dumps()sort_keys=True标志。更多关于json encoder and decoder

因为python中的json被解析为dictionary,而python中的普通dictionary是无序的,所以如果您想要被排序,那么您必须使用ordered dict

from collections import OrderedDict

OrderedDict({"a":1})

相关问题 更多 >