新聞中心
pickle模塊:
屬于python專有的模塊,用法,功能與json類似。
常用方法:
dump(obj,fp):將對(duì)象以字符串的形式寫入文件中。
load(fp):將數(shù)據(jù)從文件中讀出,并返回(需要變量接收)。
dumps(obj):將對(duì)象轉(zhuǎn)換成json字符串形式。
loads(str):將json字符串?dāng)?shù)據(jù)轉(zhuǎn)換成原來(lái)的數(shù)據(jù)類型。
dump(obj,fp) | load(fp) 示例如下;
import pickle
# 將數(shù)據(jù)以json方式寫入文件
dict_1 = {"電影":"黃飛鴻","電視劇":"霍元甲"}
file_write = open("pickle.txt",mode="wb")
pickle.dump(dict_1,file_write) # 將字典以字節(jié)的形式寫入文件
file_write.close()
# 從文件中以json方式讀取數(shù)據(jù)
file_read = open("pickle.txt",mode="rb")
dict_2 = pickle.load(file_read) # 將文件中內(nèi)容轉(zhuǎn)換成原數(shù)據(jù)類型并返回
file_read.close()
print(dict_2.items(),type(dict_2)) # 打印轉(zhuǎn)換后的數(shù)據(jù)打印內(nèi)容如下
dict_items([('電影', '黃飛鴻'), ('電視劇', '霍元甲')]) 相關(guān)推薦:《Python視頻教程》
dumps(obj) | loads(obj) 示例如下;
import pickle
dict_1 = {"電影":"黃飛鴻"}
pickle_byte = pickle.dumps(dict_1) # 將字典轉(zhuǎn)換成pickle字節(jié)
print(pickle_byte)
# 將pickle字節(jié)轉(zhuǎn)換成原數(shù)據(jù)
dict_2 = pickle.loads(pickle_byte)
print(dict_2.items(),type(dict_2)) # 打印轉(zhuǎn)換后的數(shù)據(jù)打印內(nèi)容如下
b'\x80\x03}q\x00X\x06\x00\x00\x00\xe7\x94\xb5\xe5\xbd\xb1q\x01X\t\x00\x00\x00\xe9\xbb\x84\xe9\xa3\x9e\xe9\xb8\xbfq
\x02s.'
dict_items([('電影', '黃飛鴻')]) 與json不同的是pickle可以多次dump多次load,如下:
import pickle
dict_1 = {"電影":"黃飛鴻"}
dict_3 = {"電視劇":"霍元甲"}
dict_5 = {"動(dòng)畫片":"葫蘆娃"}
file_write = open("pickle.txt",mode="wb")
pickle.dump(dict_1,file_write) # 將dict_1以字節(jié)的形式寫入文件
pickle.dump(dict_3,file_write) # 將dict_3以字節(jié)的形式寫入文件
pickle.dump(dict_5,file_write) # 將dict_5以字節(jié)的形式寫入文件
file_write.close()
file_read = open("pickle.txt",mode="rb")
dict_2 = pickle.load(file_read) # 將文件中內(nèi)容轉(zhuǎn)換成原數(shù)據(jù)類型并返回
dict_4 = pickle.load(file_read) # 將文件中內(nèi)容轉(zhuǎn)換成原數(shù)據(jù)類型并返回
dict_6 = pickle.load(file_read) # 將文件中內(nèi)容轉(zhuǎn)換成原數(shù)據(jù)類型并返回
file_read.close()
print(dict_2.items(),type(dict_2)) # 打印轉(zhuǎn)換后的數(shù)據(jù)
print(dict_4.items(),type(dict_4)) # 打印轉(zhuǎn)換后的數(shù)據(jù)
print(dict_6.items(),type(dict_4)) # 打印轉(zhuǎn)換后的數(shù)據(jù)打印內(nèi)容如下
dict_items([('電影', '黃飛鴻')])
dict_items([('電視劇', '霍元甲')])
dict_items([('動(dòng)畫片', '葫蘆娃')]) 小結(jié):
1、json屬于通用的模塊,Java,JS等其它語(yǔ)言也支持。
pickle是Python私有的,只支持Python。
2、json將對(duì)象轉(zhuǎn)換成json字符串類型。
pickle將對(duì)象轉(zhuǎn)換成pickle字節(jié)類型。
3、json只能轉(zhuǎn)換dict,list,tuple,str,int,float,bool值等簡(jiǎn)單數(shù)據(jù)類型
pickle能轉(zhuǎn)換除了lamda以外的所有已知數(shù)據(jù)類型。
4、json雖然可以多次dump但是load會(huì)報(bào)錯(cuò)(這是傷)。
pickle可以多次dump,多次load。
相關(guān)推薦:
一文帶你讀懂JSON模塊
分享題目:創(chuàng)新互聯(lián)Python教程:一文帶你讀懂Python中的pickle模塊
文章鏈接:http://fisionsoft.com.cn/article/cdodosd.html


咨詢
建站咨詢
