Python pickle模块实现对象序列化

yipeiwu_com5年前Python基础

这篇文章主要介绍了Python pickle模块实现对象序列化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

作用

对Python对象进行序列化,便于存储和传输

Python对象序列化成bytes类型

pickle.dumps(obj) 将Python对象转化为bytes类型

pickle.loads(str) 将转化成的bytes类型数据还原成对象

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import pickle
>>> mydict = {'id':123, 'name':'abc'}
>>> pickle_str = pickle.dumps(mydict)
>>> pickle_str
b'\x80\x03}q\x00(X\x02\x00\x00\x00idq\x01K{X\x04\x00\x00\x00nameq\x02X\x03\x00\x00\x00abcq\x03u.'
>>> newdict = pickle.loads(pickle_str)
>>> newdict
{'id': 123, 'name': 'abc'}

Python对象序列化写入文件

pickle.dump(obj, file)

可以存储多个对象,读取时按存储顺序读取

>>> import pickle
>>> mydict = {'id':123, 'name':'abc'}
>>> file = open('pickle.txt','wb')
>>> pickle.dump(mydict, file)
>>> file.close()

从文件反序列化读取Python对象

pickle.load(obj, file)

>>> import pickle
>>> file = open('pickle.txt','rb')
>>> newdict = pickle.load(file)
>>> file.close()
>>> newdict
{'id': 123, 'name': 'abc'}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

致Python初学者 Anaconda入门使用指南完整版

打算学习 Python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢? 到底该装 Python2 呢还是 Python3 ? 为什么安装 Python 时总是出错? 怎么安装工具包呢...

Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子

scapy是python写的一个功能强大的交互式数据包处理程序,可用来发送、嗅探、解析和伪造网络数据包,常常被用到网络攻击和测试中。 这里就直接用python的scapy搞。 这里是ar...

Python实现通过文件路径获取文件hash值的方法

本文实例讲述了Python实现通过文件路径获取文件hash值的方法。分享给大家供大家参考,具体如下: import hashlib import os,sys def CalcSha...

python识别文字(基于tesseract)代码实例

python识别文字(基于tesseract)代码实例

这篇文章主要介绍了python识别文字(基于tesseract)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Ubuntu版...

python解析含有重复key的json方法

python自带的json包能够方便的解析json文本,但是如果json文本中包含重复key的时候,解析的结果就是错误的。如下为例 {"key":"1", "key":"2", "...