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常用模块用法分析
Sep 08 Python
Python函数的周期性执行实现方法
Aug 13 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
Sep 26 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
简单谈谈python基本数据类型
Sep 26 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
Jun 12 Python
如何将 awk 脚本移植到 Python
Dec 09 Python
python实现字典嵌套列表取值
Dec 16 Python
Django xadmin安装及使用详解
Oct 26 Python
Python入门之基础语法详解
May 11 Python
移除Selenium中window.navigator.webdriver值
Jun 10 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
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
怎样去阅读一份php源代码
2009/08/21 PHP
ajax php 实现写入数据库
2009/09/02 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
深入学习jQuery Validate表单验证(二)
2016/01/18 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
python基础教程之Filter使用方法
2017/01/17 Python
python 将md5转为16字节的方法
2018/05/29 Python
django缓存配置的几种方法详解
2018/07/16 Python
python使用Matplotlib画条形图
2020/03/25 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
python字符串的拼接方法总结
2019/11/18 Python
Django 博客实现简单的全文搜索的示例代码
2020/02/17 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
高清屏下canvas重置尺寸引发的问题的解决
2019/10/14 HTML / CSS
元旦晚会上单位领导演讲稿
2014/01/05 职场文书
初中班主任评语大全
2014/04/24 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
小学班主任评语
2014/12/29 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书