python中dumps是按照什么顺序排序_python – JSON对象中的项目是使用“json.dumps”的顺序?...

Python dict和JSON对象都是无序集合。您可以传入sort_keys参数,对键进行排序:

>>> import json

>>> json.dumps({'a': 1, 'b': 2})

'{"b": 2, "a": 1}'

>>> json.dumps({'a': 1, 'b': 2}, sort_keys=True)

'{"a": 1, "b": 2}'

>>> from collections import OrderedDict

>>> json.dumps(OrderedDict([("a", 1), ("b", 2)]))

'{"a": 1, "b": 2}'

>>> json.dumps(OrderedDict([("b", 2), ("a", 1)]))

'{"b": 2, "a": 1}'

Since Python 3.6,保留关键字参数顺序,并且可以使用更好的语法重写上述内容:

>>> json.dumps(OrderedDict(a=1, b=2))

'{"a": 1, "b": 2}'

>>> json.dumps(OrderedDict(b=2, a=1))

'{"b": 2, "a": 1}'

如果你的输入是JSON,然后保留顺序(以获得OrderedDict),你可以传递object_pair_hook,as suggested by @Fred Yankowski:

>>> json.loads('{"a": 1, "b": 2}', object_pairs_hook=OrderedDict)

OrderedDict([('a', 1), ('b', 2)])

>>> json.loads('{"b": 2, "a": 1}', object_pairs_hook=OrderedDict)

OrderedDict([('b', 2), ('a', 1)])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值