python json load json 数据后出现乱序的解决方案


Posted in Python onFebruary 27, 2020

众所周知:python json 可以转换的json字符串,但是在将其转换为字典时,出现了乱序

字典是一个散列结构,亦即他自身根据key进行排序,无法保证顺序

import json

jsonstr = '{"username":"string","age":"int","income":"float","createdTime":"date"}'

print(json.loads(jsonstr))

输出结果不一致

代码打印

{'age': 'int', 'createdTime': 'date', 'username': 'string', 'income': 'float'}

控制台:

>>> import json
>>> jsonstr = '{"username":"string","age":"int","income":"float","createdTime":"date"}'
>>> print(json.loads(jsonstr))
{'username': 'string', 'age': 'int', 'income': 'float', 'createdTime': 'date'}
>>>

最后采用有序字典集合:collections.OrderedDict ,二者输出保持一致

dictStr = json.loads(jsonstr,object_pairs_hook=collections.OrderedDict)

补充拓展:细数json.load和loads的区别

Python中json.load和json.loads都是实现“反序列化”,区别是:

loads针对内存对象,即将Python内置数据序列化为字串

如使用json.dumps序列化的对象d_json=json.dumps({'a':1, 'b':2}),在这里d_json是一个字串'{"b": 2, "a": 1}'

d=json.loads(d_json) #{ b": 2, "a": 1},使用load重新反序列化为dict

load针对文件句柄

如本地有一个json文件a.json则可以d=json.load(open('a.json'))

相应的,dump就是将内置类型序列化为json对象后写入文件

以上这篇python json load json 数据后出现乱序的解决方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现爬虫下载漫画示例
Feb 16 Python
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
Python中字典的setdefault()方法教程
Feb 07 Python
Sublime开发python程序的示例代码
Jan 24 Python
详解python中的线程
Feb 10 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
Apr 28 Python
Python爬虫实战之12306抢票开源
Jan 24 Python
Python全栈之列表数据类型详解
Oct 01 Python
基于matplotlib xticks用法详解
Apr 16 Python
Python字典fromkeys()方法使用代码实例
Jul 20 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
Python3标准库之functools管理函数的工具详解
Feb 27 #Python
Python打包工具PyInstaller的安装与pycharm配置支持PyInstaller详细方法
Feb 27 #Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 #Python
python实现翻译word表格小程序
Feb 27 #Python
Python统计文本词汇出现次数的实例代码
Feb 27 #Python
浅谈python输出列表元素的所有排列形式
Feb 26 #Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 #Python
You might like
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
javascript this用法小结
2008/12/19 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
js简单抽奖代码
2015/01/16 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
ES6新特性一: let和const命令详解
2017/04/20 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
详解layui中的树形关于取值传值问题
2018/01/16 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
python中enumerate的用法实例解析
2014/08/18 Python
python运行时间的几种方法
2016/06/17 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python2 与python3的print区别小结
2018/01/16 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
django最快程序开发流程详解
2019/07/19 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
python开根号实例讲解
2020/08/30 Python
秘书行业自我鉴定范文
2013/12/30 职场文书
报关报检委托书
2014/04/08 职场文书
python使用torch随机初始化参数
2022/03/22 Python