栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

json.dumps弄乱顺序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

json.dumps弄乱顺序

像其他答案正确指出的那样,在Python 3.6之前,字典是 无序的

就是说,JSON还应该具有 _无序_映射,因此原则上在JSON中存储有序字典没有多大意义。具体来说,这意味着在读取JSON对象时,返回键的顺序可以是任意的。

因此,在JSON中保留映射顺序(例如PythonOrderedDict)的一种好方法是输出一个(键,值)对的数组,您在读取时将其转换回有序映射:

>>> from collections import OrderedDict>>> import json>>> d = OrderedDict([(1, 10), (2, 20)])        >>> print d[2]20>>> json_format = json.dumps(d.items())        >>> print json_format  # Order maintained[[1, 10], [2, 20]]>>> OrderedDict(json.loads(json_format))  # Reading from JSON: works!OrderedDict([(1, 10), (2, 20)])>>> _[2]  # This works!20

(请注意,从(键,值)对的 列表 构造有序字典的方式:

OrderedDict({1: 10, 2:20})
将不起作用:它的键不一定像字典文字中那样是有序的,因为该文字创建了一个Python字典,其键是无序的。)

PS :从Python
3.1开始,json模块提供了一个挂钩,用于自动将成对的列表(如上)转换为其他类似OrderedDict的对象。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号