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序列之list和tuple常用方法以及注意事项
Jan 09 Python
为Python程序添加图形化界面的教程
Apr 29 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
利用Python如何生成hash值示例详解
Dec 20 Python
将python代码和注释分离的方法
Apr 21 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python判断中文字符串是否相等的实例
Jul 06 Python
python 字典中取值的两种方法小结
Aug 02 Python
Python正则匹配判断手机号是否合法的方法
Dec 09 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
通过 Django Pagination 实现简单分页功能
Nov 11 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中目录,文件操作详谈
2007/03/19 PHP
php正则表达式(regar expression)
2011/09/10 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
jQuery自动切换/点击切换选项卡效果的小例子
2013/08/12 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
Angularjs实现mvvm式的选项卡示例代码
2016/09/08 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python中实现k-means聚类算法详解
2017/11/11 Python
简单实现python画圆功能
2018/01/25 Python
Python列表(List)知识点总结
2019/02/18 Python
Myprotein比利时官方网站:欧洲第一运动营养品牌
2020/10/04 全球购物
就业自荐信
2013/12/04 职场文书
英语自荐信常用语句
2013/12/13 职场文书
打架检讨书300字
2014/02/02 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
大学军训感言1500字
2014/03/09 职场文书
《学棋》教后反思
2014/04/14 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
公务员考察材料范文
2014/12/23 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
民事答辩状格式范文
2015/05/21 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
了解Redis常见应用场景
2021/06/23 Redis