新聞中心
這篇文章給大家分享的是有關(guān)python json load json 數(shù)據(jù)后出現(xiàn)亂序怎么辦的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

眾所周知:python json 可以轉(zhuǎn)換的json字符串,但是在將其轉(zhuǎn)換為字典時(shí),出現(xiàn)了亂序
字典是一個(gè)散列結(jié)構(gòu),亦即他自身根據(jù)key進(jìn)行排序,無(wú)法保證順序
import json
jsonstr = '{"username":"string","age":"int","income":"float","createdTime":"date"}'
print(json.loads(jsonstr))輸出結(jié)果不一致
代碼打印
{'age': 'int', 'createdTime': 'date', 'username': 'string', 'income': 'float'}
控制臺(tái):
>>> 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)
補(bǔ)充拓展:細(xì)數(shù)json.load和loads的區(qū)別
Python中json.load和json.loads都是實(shí)現(xiàn)“反序列化”,區(qū)別是:
loads針對(duì)內(nèi)存對(duì)象,即將Python內(nèi)置數(shù)據(jù)序列化為字串
如使用json.dumps序列化的對(duì)象d_json=json.dumps({'a':1, 'b':2}),在這里d_json是一個(gè)字串'{"b": 2, "a": 1}'
d=json.loads(d_json) #{ b": 2, "a": 1},使用load重新反序列化為dict
load針對(duì)文件句柄
如本地有一個(gè)json文件a.json則可以d=json.load(open('a.json'))
相應(yīng)的,dump就是將內(nèi)置類型序列化為json對(duì)象后寫(xiě)入文件
感謝各位的閱讀!關(guān)于“python json load json 數(shù)據(jù)后出現(xiàn)亂序怎么辦”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
新聞標(biāo)題:pythonjsonloadjson數(shù)據(jù)后出現(xiàn)亂序怎么辦-創(chuàng)新互聯(lián)
新聞來(lái)源:http://www.dlmjj.cn/article/dpheds.html


咨詢
建站咨詢
