1. 程式人生 > 程式設計 >python json load json 資料後出現亂序的解決方案

python json load json 資料後出現亂序的解決方案

眾所周知: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","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 資料後出現亂序的解決方案就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。