這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)使用Python怎么實(shí)現(xiàn)Json的序列化與反序列化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
“專業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來(lái)堅(jiān)持追求的企業(yè)文化。 創(chuàng)新互聯(lián)公司是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)、軟件開發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!1、Json序列化如下:
import json print (json.__all__) #查看json庫(kù)的所有方法 ['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder']
未在dumps函數(shù)中添加參數(shù)ensure_ascii=False,結(jié)果如下:
#coding: utf-8 import json dict = {'name':'zhangsan', 'age':33, 'address':'紅星路'} print('未序列化前的數(shù)據(jù)類型為:', type(dict)) print('為序列化前的數(shù)據(jù):', dict) #對(duì)dict進(jìn)行序列化的處理 dict_xu = json.dumps(dict) #直接進(jìn)行序列化 print('序列化后的數(shù)據(jù)類型為:', type(dict_xu)) print('序列化后的數(shù)據(jù)為:', dict_xu)
未序列化前的數(shù)據(jù)類型為:
為序列化前的數(shù)據(jù): {'name': 'zhangsan', 'address': '紅星路', 'age': 33}
序列化后的數(shù)據(jù)類型為:
序列化后的數(shù)據(jù)為: {"name": "zhangsan", "address": "\u7ea2\u661f\u8def", "age": 33}
在dumps函數(shù)中添加參數(shù)ensure_ascii=False,結(jié)果如下:
#coding: utf-8 import json dict = {'name':'zhangsan', 'age':33, 'address':'紅星路'} print('未序列化前的數(shù)據(jù)類型為:', type(dict)) print('為序列化前的數(shù)據(jù):', dict) #對(duì)dict進(jìn)行序列化的處理 dict_xu = json.dumps(dict,ensure_ascii=False) #添加ensure_ascii=False進(jìn)行序列化 print('序列化后的數(shù)據(jù)類型為:', type(dict_xu)) print('序列化后的數(shù)據(jù)為:', dict_xu)
未序列化前的數(shù)據(jù)類型為:
為序列化前的數(shù)據(jù): {'address': '紅星路', 'age': 33, 'name': 'zhangsan'}
序列化后的數(shù)據(jù)類型為:
序列化后的數(shù)據(jù)為: {"address": "紅星路", "age": 33, "name": "zhangsan"}
2、Json反序列化如下:
#coding: utf-8 import json dict = {'name':'zhangsan', 'age':33, 'address':'紅星路'} print('未序列化前的數(shù)據(jù)類型為:', type(dict)) print('為序列化前的數(shù)據(jù):', dict) #對(duì)dict進(jìn)行序列化的處理 dict_xu = json.dumps(dict,ensure_ascii=False) #添加ensure_ascii=False進(jìn)行序列化 print('序列化后的數(shù)據(jù)類型為:', type(dict_xu)) print('序列化后的數(shù)據(jù)為:', dict_xu) #對(duì)dict_xu進(jìn)行反序列化處理 dict_fan = json.loads(dict_xu) print('反序列化后的數(shù)據(jù)類型為:', type(dict_fan)) print('反序列化后的數(shù)據(jù)為: ', dict_fan)
未序列化前的數(shù)據(jù)類型為:
為序列化前的數(shù)據(jù): {'name': 'zhangsan', 'age': 33, 'address': '紅星路'}
序列化后的數(shù)據(jù)類型為:
序列化后的數(shù)據(jù)為: {"name": "zhangsan", "age": 33, "address": "紅星路"}
反序列化后的數(shù)據(jù)類型為:
反序列化后的數(shù)據(jù)為: {'name': 'zhangsan', 'age': 33, 'address': '紅星路'}
在實(shí)際的工作中,序列化或者反序列化的可能是一個(gè)文件的形式,不可能像如上寫的那樣簡(jiǎn)單的,下來(lái)就來(lái)實(shí)現(xiàn)這部分,把文件內(nèi)容進(jìn)行序列化和反序列化,先來(lái)看序列化的代碼,兩步操作:1、先序列化 列表對(duì)象 ;2、步把序列化成的字符串寫入文件:
#coding: utf-8 import json list = ['Apple','Huawei','selenium','java','python'] #把list先序列化,寫入到一個(gè)文件中 # 兩步操作 1步先序列化 列表對(duì)象 2步把序列化成的字符串寫入文件 json.dump(list, open('e:/test.txt','w')) r1=open('e:/test.txt','r') print(r1.read())
["Apple", "Huawei", "selenium", "java", "python"]
反序列化,兩步操作:1、先讀取文件的字符串對(duì)象;2、然后反序列化成列表對(duì)象:
#coding: utf-8 import json list = ['Apple','Huawei','selenium','java','python'] #把list先序列化,寫入到一個(gè)文件中 # 兩步操作 1步先序列化 列表對(duì)象 2步把序列化成的字符串寫入文件 json.dump(list, open('e:/test.txt','w')) r1=open('e:/test.txt','r') print(r1.read()) #------------------------------------------------------------ #兩步操作:1、先讀取文件的字符串對(duì)象;2、然后反序列化成列表對(duì)象 res=json.load(open('e:/test.txt','r')) print (res) print('數(shù)據(jù)類型:',type(res))
["Apple", "Huawei", "selenium", "java", "python"]
['Apple', 'Huawei', 'selenium', 'java', 'python']
數(shù)據(jù)類型:
上述就是小編為大家分享的使用Python怎么實(shí)現(xiàn)Json的序列化與反序列化了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。