日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例

發(fā)布時間:2025/3/15 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在python中,序列化可以理解為:把python的對象編碼轉(zhuǎn)換為json格式的字符串,反序列化可以理解為:把json格式字符串解碼為python數(shù)據(jù)對象。在python的標準庫中,專門提供了json庫與pickle庫來處理這部分。

用于序列化的兩個模塊

json:用于字符串和Python數(shù)據(jù)類型間進行轉(zhuǎn)換

pickle: 用于python特有的類型和python的數(shù)據(jù)類型間進行轉(zhuǎn)換

json提供四個功能:dumps,dump,loads,load

pickle提供四個功能:dumps,dump,loads,load

?

#json.dumps()將一個Python數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為json
#json.loads()將一個JSON編碼的字符串轉(zhuǎn)換回一個Python數(shù)據(jù)結(jié)構(gòu)

data1={'name':'橙子','age':22} print(type(data1),data1) #字典序列化為json格式的字符串 data2=json.dumps(data1,ensure_ascii=False)#如果有中文,我們需要加參數(shù)處理 print(type(data2),data2) #json格式的字符串反序列化為字典 data3=json.loads(data2) print(type(data3),data3)<class 'dict'> {'name': '橙子', 'age': 22} <class 'str'> {"name": "橙子", "age": 22} <class 'dict'> {'name': '橙子', 'age': 22}

#pickle.dumps()將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有python語言認識的字符串
#pickle.loads()將pickle數(shù)據(jù)轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)

data4={'name':'荔枝','age':22} print(type(data4),data4) # dumps將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有python語言認識的字符串 data5=pickle.dumps(data4) print(type(data5),data5) # loads將pickle數(shù)據(jù)轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu) data6=pickle.loads(data5) print(type(data6),data6)<class 'dict'> {'name': '荔枝', 'age': 22} <class 'bytes'> b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x06\x00\x00\x00\xe8\x8d\x94\xe6\x9e\x9dq\x02X\x03\x00\x00\x00ageq\x03K\x16u.' <class 'dict'> {'name': '荔枝', 'age': 22}

#json?(dump,load)文件內(nèi)容進行序列化和反序列化

list1=['selenium','appium','android','ios','uiautomator'] #json.dump()用于將dict類型的數(shù)據(jù)轉(zhuǎn)成str,并寫入到txt/json文件中。 with open(r'C:\Users\wangli\PycharmProjects\Test\Test\1.txt','w') as f:json.dump(list1,f) #json.load()用于從txt/json文件中讀取數(shù)據(jù) with open(r'C:\Users\wangli\PycharmProjects\Test\Test\1.txt','r') as f:print(json.load(f))['selenium', 'appium', 'android', 'ios', 'uiautomator']

#pickle(dump,load)文件內(nèi)容進行序列化和反序列化

list2=['selenium','appium','android','ios'] # dump 將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有python語言認識的字符串,并寫入文件 with open(r'C:\Users\wangli\PycharmProjects\Test\Test\2.txt','wb') as f:pickle.dump(list2,f) # load 從數(shù)據(jù)文件中讀取數(shù)據(jù),并轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu) with open(r'C:\Users\wangli\PycharmProjects\Test\Test\2.txt','rb') as f:print(pickle.load(f))['selenium', 'appium', 'android', 'ios']

eval()用法

list1='[1,2,3]' list2=eval(list1) list3=str(list2) print(type(list1),list1,type(list2),list2,type(list3),list3) tuple1='(1,2,3)' tuple2=eval(tuple1) tuple3=str(tuple2) print(type(tuple1),tuple1,type(tuple2),tuple2,type(tuple3),tuple3) dict1="{'name':'橙子','age':22}" dict2=eval(dict1) dict3=str(dict2) print(type(dict1),dict1,type(dict2),dict2,type(dict3),dict3)<class 'str'> [1,2,3] <class 'list'> [1, 2, 3] <class 'str'> [1, 2, 3] <class 'str'> (1,2,3) <class 'tuple'> (1, 2, 3) <class 'str'> (1, 2, 3) <class 'str'> {'name':'橙子','age':22} <class 'dict'> {'name': '橙子', 'age': 22} <class 'str'> {'name': '橙子', 'age': 22}Process finished with exit code 0

?

總結(jié)

以上是生活随笔為你收集整理的Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。