import pickle
defsayhi(name):print('Hello:', name)
info ={'filename':'test.txt','abc':'123','func':sayhi}#func对应的值是一个函数print(type(info))print(info)withopen('test.txt','wb')as f:
data = pickle.dumps(info)
f.write(data)print(type(data))print(data)print(pickle.loads(data))
显示结果:
<class'dict'>{'filename':'test.txt','abc':'123','func':<function sayhi at 0x7f057bea8158>}<class'bytes'>
b'\x80\x03}q\x00(X\x08\x00\x00\x00filenameq\x01X\x08\x00\x00\x00test.txtq\x02X\x03\x00\x00\x00abcq\x03X\x03\x00\x00\x00123q\x04X\x04\x00\x00\x00funcq\x05c__main__\nsayhi\nq\x06u.'{'filename':'test.txt','abc':'123','func':<function sayhi at 0x7f057bea8158>}
pickle反序列化函数
import pickle
defsayhi(name):#此处需要定义出函数,因为它不能被直接加载到内存中print('Hello:',name)withopen('test.txt','rb')as f:
data = f.read()print(type(data))print(data)
info = pickle.loads(data)print(type(info))print(info)print(info.get('filename'))print(info.get('abc'))
info.get('func')('Tom')
显示结果:
<class'bytes'>
b'\x80\x03}q\x00(X\x08\x00\x00\x00filenameq\x01X\x08\x00\x00\x00test.txtq\x02X\x03\x00\x00\x00abcq\x03X\x03\x00\x00\x00123q\x04X\x04\x00\x00\x00funcq\x05c__main__\nsayhi\nq\x06u.'<class'dict'>{'filename':'test.txt','abc':'123','func':<function sayhi at 0x7f4e18c8f158>}
test.txt
123
Hello: Tom
申明:资料来源于网络及书本,通过理解、实践、整理成学习笔记。import jsondict1={'id':'001','name':'Maxwell'}#--------------dumps & loads---------------------with open('dumps.txt','w',encoding='utf-8') as f: f.write(json....