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使用dis模块把Python反编译为字节码的用法详解
Jun 14 Python
Python温度转换实例分析
Jan 17 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
Django渲染Markdown文章目录的方法示例
Jan 02 Python
python如何获取当前文件夹下所有文件名详解
Jan 25 Python
详解Python locals()的陷阱
Mar 26 Python
Python Web版语音合成实例详解
Jul 16 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
python修改FTP服务器上的文件名
Sep 11 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
python使用布隆过滤器的实现示例
Aug 20 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
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
JavaScript动态操作表格实例(添加,删除行,列及单元格)
2013/11/25 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
Javascript 按位与赋值运算符 (&=)使用介绍
2014/02/04 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
Vuejs第九篇之组件作用域及props数据传递实例详解
2016/09/05 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
Python字典的核心底层原理讲解
2019/01/24 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python热力图实现简单方法
2021/01/29 Python
CSS3绘制超炫的上下起伏波动进度加载动画
2016/04/21 HTML / CSS
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
什么是Rollback Segment
2013/04/22 面试题
怎样写好自我鉴定
2013/12/04 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
办理信用卡收入证明范例
2014/09/13 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
优秀大学生申请书
2019/06/24 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python