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中的数据存储模块shelve的用法
Mar 03 Python
python中星号变量的几种特殊用法
Sep 07 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
python实现kMeans算法
Dec 21 Python
Python温度转换实例分析
Jan 17 Python
python实现逐个读取txt字符并修改
Dec 24 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
通过实例解析Python调用json模块
Dec 11 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
Python 程序员必须掌握的日志记录
Aug 17 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 array的学习笔记
2012/05/16 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
JavaScript面向对象编程
2008/03/02 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
向当前style sheet中插入一个新的style实现方法
2013/04/01 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
javascript格式化json显示实例分析
2015/04/21 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
Python中os和shutil模块实用方法集锦
2014/05/13 Python
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
python 性能提升的几种方法
2016/07/15 Python
python使用psutil模块获取系统状态
2016/08/27 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
Pytoch之torchvision.transforms图像变换实例
2019/12/30 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
后勤岗位职责
2013/11/26 职场文书
户外婚礼策划方案
2014/02/08 职场文书
2014年教师节寄语
2014/08/11 职场文书
党的群众路线教育实践活动个人对照检查材料(公安)
2014/11/05 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
生活委员竞选稿
2015/11/21 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技