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的IDEL增加清屏功能实例
Jun 19 Python
python中模块的__all__属性详解
Oct 26 Python
Python获取当前函数名称方法实例分享
Jan 18 Python
Python 判断文件或目录是否存在的实例代码
Jul 19 Python
基于Python实现用户管理系统
Feb 26 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
python3 实现口罩抽签的功能
Mar 11 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
python中的unittest框架实例详解
Feb 05 Python
python实现图片转字符画
Feb 19 Python
python数字类型和占位符详情
Mar 13 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
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
浅谈PHP中try{}catch{}的使用方法
2016/12/09 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
javascript时间函数大全
2014/06/30 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
javascript事件冒泡简单示例
2016/06/20 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
详解vue服务端渲染(SSR)初探
2017/06/19 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
Python算法中的时间复杂度问题
2019/11/19 Python
python mysql中in参数化说明
2020/06/05 Python
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
优秀的自荐信要注意哪些
2014/01/03 职场文书
秋天的图画教学反思
2014/05/01 职场文书
机关搬迁方案
2014/05/18 职场文书
技术比武方案
2014/05/19 职场文书
卖房协议书样本
2014/10/30 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP