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的re正则表达式实例代码
Jan 24 Python
利用Python如何生成便签图片详解
Jul 09 Python
Python实现的特征提取操作示例
Dec 03 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
Python 控制终端输出文字的实例
Jul 12 Python
Python是怎样处理json模块的
Jul 16 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
python实现无边框进度条的实例代码
Dec 30 Python
OpenCV-Python实现轮廓拟合
Jun 08 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合并两个数组的两种方式的异同
2012/09/14 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
AngularJS控制器controller正确的通信的方法
2016/01/25 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
简单说说angular.json文件的使用
2018/10/29 Javascript
VUE脚手架具体使用方法
2019/05/20 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
利用python获得时间的实例说明
2013/03/25 Python
Python中bisect的用法
2014/09/23 Python
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
Python开发的实用计算器完整实例
2017/05/10 Python
Python3 中文文件读写方法
2018/01/23 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
python redis 删除key脚本的实例
2019/02/19 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
高一化学教学反思
2014/02/05 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
《司马光》教学反思
2016/02/22 职场文书
三好学生评选事迹材料(2016精选版)
2016/02/25 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python