聊聊python中的load、loads實現(xiàn)反序列化的問題
load與loads
簡介:
在python自動化中,我們傳遞一些參數(shù)是需要從文件中讀取過來的,讀取過來的字典并非python對象數(shù)據(jù)類型而是string類型。
這樣在我們傳遞參數(shù)的時候就會出現(xiàn)格式不正確的情況,這時候就要用到load實現(xiàn)反序列化
python對象數(shù)據(jù)類型包括list ,dict,tuple,set等
案例1:load
load:load主要處理的是文件流
首先我們新建一個txt文件,文件中寫入一個字典
{"a":"1","b":"2"}
這時候我們用py文件把他讀取出來
f = open(r'C:\Users\張?zhí)熨n\PycharmProjects\pythonProject\test\lianxi\load.txt','r',encoding='utf-8') #通過open打開剛剛新建的txt文檔 a = f.read()#讀取f文件下所有的內(nèi)容 print(a) #打印下讀取的內(nèi)容 print(type(a)) #打印下讀取內(nèi)容的格式
返回結(jié)果
D:\software\python.exe C:/Users/張?zhí)熨n/PycharmProjects/pythonProject/test/lianxi/111.py
{"a":"1","b":"2"}
<class 'str'>
可以看到我們讀取出來的內(nèi)容看似字典,但是實際type類型是str類型的,如果在做接口測試的時候,接口需要傳輸
json格式的數(shù)據(jù),這時候就會出現(xiàn)報錯的情況。
解決方案:使用load方式,將文件中的數(shù)據(jù)轉(zhuǎn)換成python對象中的dict字典格式
import json f = open(r'C:\Users\張?zhí)熨n\PycharmProjects\pythonProject\test\lianxi\load.txt','r',encoding='utf-8') #通過open打開剛剛新建的txt文檔 a = json.load(f) #讀取f文件下所有的內(nèi)容 print(a) #打印下讀取的內(nèi)容 print(type(a)) #打印下讀取內(nèi)容的格式
返回結(jié)果
D:\software\python.exe C:/Users/張?zhí)熨n/PycharmProjects/pythonProject/test/lianxi/111.py
{'a': '1', 'b': '2'}
<class 'dict'>
案例2:loads
loads:loads主要處理的是字符流
正常打印一個字符形式的字典,返回結(jié)果為str類型
test = "{'a':'1','b':'2'}" print(test) print(type(test))
返回結(jié)果
{'a':'1','b':'2'}
<class 'str'>
使用loads將sting類型轉(zhuǎn)換為python可讀對象
import json test = '{"a":"1","b":"2"}' test1 = json.loads(test) print(test1) print(type(test1))
返回結(jié)果
{'a': '1', 'b': '2'}
<class 'dict'>
到此這篇關(guān)于python中的load、loads實現(xiàn)反序列化的文章就介紹到這了,更多相關(guān)python中的load、loads實現(xiàn)反序列化內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。