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中装饰器的一个妙用
Feb 08 Python
python计算N天之后日期的方法
Mar 31 Python
Python中的日期时间处理详解
Nov 17 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
Python中的Numpy矩阵操作
Aug 12 Python
Python 微信之获取好友昵称并制作wordcloud的实例
Feb 21 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
Python3 合并二叉树的实现
Sep 30 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
Python内置加密模块用法解析
Nov 25 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
Python中的tkinter库简单案例详解
Jan 22 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中单双引号的误区和双引号小隐患
2016/07/19 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
jquery实现向下滑出的二级导航下滑菜单效果
2015/08/25 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
JavaScript解析机制与闭包原理实例详解
2019/03/08 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
Python实现截屏的函数
2015/07/26 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python 拼接文件路径的方法
2018/10/23 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Python API自动化框架总结
2019/11/12 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
中文专业求职信
2014/06/20 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
党性分析材料格式
2014/12/19 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
安装配置mysql及Navicat prenium的详细流程
2021/06/10 MySQL
python非标准时间的转换
2021/07/25 Python
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python