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