python json load json 数据后出现乱序的解决方案
众所周知:pythonjson可以转换的json字符串,但是在将其转换为字典时,出现了乱序
字典是一个散列结构,亦即他自身根据key进行排序,无法保证顺序
importjson jsonstr='{"username":"string","age":"int","income":"float","createdTime":"date"}' print(json.loads(jsonstr))
输出结果不一致
代码打印
{'age':'int','createdTime':'date','username':'string','income':'float'}
控制台:
>>>importjson >>>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对象后写入文件
以上这篇pythonjsonloadjson数据后出现乱序的解决方案就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。