Python中json和pickle模快dumps()、loads()、dump()、load()序列化和反序列化实例
在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)
#pickle.dumps()將數(shù)據(jù)通過特殊的形式轉(zhuǎn)換為只有python語言認識的字符串
#pickle.loads()將pickle數(shù)據(jù)轉(zhuǎn)換為python的數(shù)據(jù)結(jié)構(gòu)
#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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python第一步怎么写_python第
- 下一篇: Python测试开发django4.te