python中的load、loads實現反序列化示列

1、簡介

python自動化中,我們傳遞一些參數是需要從文件中讀取過來的,讀取過來的字典並非python對象數據類型而是string類型。

這樣在我們傳遞參數的時候就會出現格式不正確的情況,這時候就要用到load實現反序列化

python對象數據類型包括list dicttupleset

2、案例1:load

loadload主要處理的是文件流

首先我們新建一個txt文件,文件中寫入一個字典

{"a":"1","b":"2"}
 

這時候我們用py文件把他讀取出來

f = open(r'C:\Users\張天賜\PycharmProjects\pythonProject\test\lianxi\load.txt','r',encoding='utf-8') #通過open打開剛剛新建的txt文檔
a = f.read()   #讀取f文件下所有的內容
print(a)  #打印下讀取的內容
print(type(a)) #打印下讀取內容的格式
 

返回結果

D:\software\python.exe C:/Users/張天賜/PycharmProjects/pythonProject/test/lianxi/111.py
{"a":"1","b":"2"}
<class 'str'>

 可以看到我們讀取出來的內容看似字典,但是實際type類型是str類型的,如果在做接口測試的時候,接口需要傳輸

json格式的數據,這時候就會出現報錯的情況。

解決方案:使用load方式,將文件中的數據轉換成python對象中的dict字典格式

import json
f = open(r'C:\Users\張天賜\PycharmProjects\pythonProject\test\lianxi\load.txt','r',encoding='utf-8') #通過open打開剛剛新建的txt文檔
a = json.load(f)  #讀取f文件下所有的內容
print(a)  #打印下讀取的內容
print(type(a)) #打印下讀取內容的格式


返回結果

D:\software\python.exe C:/Users/張天賜/PycharmProjects/pythonProject/test/lianxi/111.py
{'a': '1', 'b': '2'}
<class 'dict'>
 

3、案例2:loads

loadsloads主要處理的是字符流

正常打印一個字符形式的字典,返回結果為str類型

test = "{'a':'1','b':'2'}"
print(test)
print(type(test))


返回結果

{'a':'1','b':'2'}
<class 'str'>
 

使用loadssting類型轉換為python可讀對象

import json
test = '{"a":"1","b":"2"}'
test1 = json.loads(test)
print(test1)
print(type(test1))
 

返回結果

{'a': '1', 'b': '2'}
<class 'dict'>

到此這篇關於python中的loadloads實現反序列化示列的文章就介紹到這瞭,更多相關load與loads內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: