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中global用法实例分析
Apr 30 Python
Python中__new__与__init__方法的区别详解
May 04 Python
tensorflow1.0学习之模型的保存与恢复(Saver)
Apr 23 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
python爬虫 urllib模块url编码处理详解
Aug 20 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Python常用数字处理基本操作汇总
Sep 10 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
pandas:get_dummies()与pd.factorize()的用法及区别说明
May 21 Python
详解Python requests模块
Jun 21 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
基于Vue的文字跑马灯组件(npm 组件包)
2017/05/24 Javascript
jQuery实现base64前台加密解密功能详解
2017/08/29 jQuery
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
[01:13:51]TNC vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python如何从键盘获取输入实例
2020/06/18 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
如何获取某个日期是当月的最后一天
2013/12/05 面试题
简历中自我评价范文3则
2013/12/14 职场文书
参观监狱心得体会
2014/01/02 职场文书
手工社团活动方案
2014/02/17 职场文书
业务员简历自我评价
2014/03/06 职场文书
村居抓节水倡议书
2014/05/19 职场文书
网站推广策划方案
2014/06/04 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
大专护理专业自荐信
2015/03/25 职场文书
摘录式读书笔记
2015/07/01 职场文书
辞职申请书范本
2019/05/20 职场文书
学者《孟子》名人名言
2019/08/09 职场文书
MySQL系列之一 MariaDB-server安装
2021/07/02 MySQL
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
AngularJS实现多级下拉框
2022/03/25 Javascript
mysql的Buffer Pool存储及原理
2022/04/02 MySQL