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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
Python中多线程及程序锁浅析
Jan 21 Python
Python中的choice()方法使用详解
May 15 Python
Python实现JSON反序列化类对象的示例
Jan 31 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
python基于C/S模式实现聊天室功能
Jan 09 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
从0到1使用python开发一个半自动答题小程序的实现
May 12 Python
如何用python处理excel表格
Jun 09 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 数组的指针操作实现代码
2011/02/08 PHP
php遍历目录与文件夹的多种方法详解
2013/11/14 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
js实现的网页颜色代码表全集
2007/07/17 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
2016/02/21 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
vue项目实现github在线预览功能
2018/06/20 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
利用ImageAI库只需几行python代码实现目标检测
2019/08/09 Python
django创建超级用户过程解析
2019/09/18 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
2020/06/17 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
经验丰富大学生村干部自我鉴定
2014/01/22 职场文书
暑期社会实践方案
2014/02/05 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
2015学习委员工作总结范文
2015/04/03 职场文书
培训感想范文
2015/08/07 职场文书
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL