python中的load、loads實現反序列化示列
1、簡介
在python
自動化中,我們傳遞一些參數是需要從文件中讀取過來的,讀取過來的字典並非python
對象數據類型而是string
類型。
這樣在我們傳遞參數的時候就會出現格式不正確的情況,這時候就要用到load
實現反序列化
python
對象數據類型包括list
,dict
,tuple
,set
等
2、案例1:load
load
:load
主要處理的是文件流
首先我們新建一個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
loads
:loads
主要處理的是字符流
正常打印一個字符形式的字典,返回結果為str類型
test = "{'a':'1','b':'2'}" print(test) print(type(test))
返回結果
{'a':'1','b':'2'} <class 'str'>
使用loads
將sting
類型轉換為python
可讀對象
import json test = '{"a":"1","b":"2"}' test1 = json.loads(test) print(test1) print(type(test1))
返回結果
{'a': '1', 'b': '2'} <class 'dict'>
到此這篇關於python
中的load
、loads
實現反序列化示列的文章就介紹到這瞭,更多相關load與loads
內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python序列化模塊之pickle與json詳解
- Python常用標準庫詳解(pickle序列化和JSON序列化)
- 關於 Python json中load和loads區別
- Python序列化與反序列化相關知識總結
- 詳解python讀寫json文件