python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案
眾所周知:python json 可以轉(zhuǎn)換的json字符串,但是在將其轉(zhuǎn)換為字典時(shí),出現(xiàn)了亂序
字典是一個(gè)散列結(jié)構(gòu),亦即他自身根據(jù)key進(jìn)行排序,無(wú)法保證順序
import jsonjsonstr = ’{'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ì)象后寫入文件
以上這篇python json load json 數(shù)據(jù)后出現(xiàn)亂序的解決方案就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)3. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法4. Spring如何使用xml創(chuàng)建bean對(duì)象5. python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法6. python 利用toapi庫(kù)自動(dòng)生成api7. python實(shí)現(xiàn)在內(nèi)存中讀寫str和二進(jìn)制數(shù)據(jù)代碼8. Java程序的編碼規(guī)范(6)9. Android Studio設(shè)置顏色拾色器工具Color Picker教程10. PHP設(shè)計(jì)模式(五)適配器模式Adapter實(shí)例詳解【結(jié)構(gòu)型】
