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根据时间生成mongodb的ObjectId的方法
Mar 13 Python
详解Python使用tensorflow入门指南
Feb 09 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
Python图像滤波处理操作示例【基于ImageFilter类】
Jan 03 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
numpy中的ndarray方法和属性详解
May 27 Python
python tornado使用流生成图片的例子
Nov 18 Python
Python实现投影法分割图像示例(一)
Jan 17 Python
python实现126邮箱发送邮件
May 20 Python
Ubuntu16安装Python3.9的实现步骤
Dec 15 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
Python 数据可视化工具 Pyecharts 安装及应用
Apr 20 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的memory_limit限制的方法分享
2012/02/21 PHP
php实现多张图片上传加水印技巧
2013/04/18 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
Dom与浏览器兼容性说明
2010/10/25 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
nodejs实现邮件发送服务实例分享
2017/03/29 NodeJs
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
详解如何让InstantClick兼容MathJax、百度统计等
2017/09/12 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
wxPython中listbox用法实例详解
2015/06/01 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
Python 一句话生成字母表的方法
2019/01/02 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
小学语文教学经验交流材料
2014/06/02 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP