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生成随机数的方法
Jan 14 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
Python之py2exe打包工具详解
Jun 14 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
Python基础之文件读取的讲解
Feb 16 Python
python Tcp协议发送和接收信息的例子
Jul 22 Python
python django生成迁移文件的实例
Aug 31 Python
浅析PEP572: 海象运算符
Oct 15 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python实现简单的猜单词小游戏
Oct 28 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
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
2011/01/17 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
用jquery修复在iframe下的页面锚点失效问题
2014/08/22 Javascript
jquery关于事件冒泡和事件委托的技巧及阻止与允许事件冒泡的三种实现方法
2015/11/27 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
JS实现购物车特效
2017/02/02 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
Angular4 反向代理Details实践
2018/05/30 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
2019/09/26 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python GUI库图形界面开发之PyQt5工具栏控件QToolBar的详细使用方法与实例
2020/02/28 Python
django form和field具体方法和属性说明
2020/07/09 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
几道数据库的概念性面试题
2014/05/30 面试题
客户表扬信范文
2014/01/10 职场文书
九年级历史教学反思
2014/01/27 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
作文之亲情600字
2019/09/23 职场文书