21天学习python编程_pickle模块序列化与反序列化
主要内容:
- 小目标:pickle模块序列化与反序列化
- 主要内容:掌握pickle模块
如果看完这篇文章,你还是弄不明白pickle操作;
你来找我,我保证不打你,我给你发100的大红包。
1. pickle模块
1.1 认识pickle:
pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议;
序列化:将Python对象转成字节流;
反序列化:将字节流转成Python对象;
1.2 pickle与Json:
主要区别:
JSON是一种文本序列化格式,pickle是二进制序列化格式;
JSON具有一定可读的,而pickle不能
JSON是可以与其他语言相互转换,pickle值能用于Python
2 pickle模块使用
主要方法:
方法 | 说明 |
---|---|
pickle.dumps(obj, protocol=None,…) | Python对象序列化 |
pickle.loads(data, *, …) | 反序列化 |
pickle.dump(obj, file, …) | 将Python对象序列化并保存到文件 |
pickle.load(file, …) | 将序列化文件导入,并转成Python对象 |
-
序列化与反序列化:
import pickle names = [‘公孙离‘,‘裴擒虎‘] #转成Json字符串 pdata = pickle.dumps(names) print(pdata) #将Json字符串转Python对象 data = pickle.loads(pdata) print(data)
结果:
b‘x80x00q....‘ [‘公孙离‘, ‘裴擒虎‘]
- pickle处理文件
import pickle fpath = r‘C:UsershygDesktopdata1.pickle‘ names = [‘公孙离‘,‘裴擒虎‘] #写入操作,wb方式打开文件 f = open(fpath, ‘wb‘) #转成Json,写入到文件 pickle.dump(names,f) f.close() #读取操作,rb方式打开文件 f = open(fpath, ‘rb‘) #将Json字符串从文件读取,并转成Python对象 pdata = pickle.load(f) print(pdata) f.close()
结果:
[‘公孙离‘, ‘裴擒虎‘]
以上就是pickle相关主要内容,pickle操作与json类似,大家可以自己尝试操作下。
21天学习python编程_pickle模块序列化与反序列化
原文地址:https://blog.51cto.com/huangyg/2512491