Python 序列化与反序列化

2023-05-30,,

序列化是为了将内存中的字典、列表、集合以及各种对象,保存到一个文件中(字节流)。而反序列化是将字节流转化回原始的对象的一个过程。

json库

序列化:json.dumps()

反序列化:json.loads()

只能处理字典、列表这些简单的序列化与反序列化。

pickle库

处理复杂的序列化与反序列化。

pickle.dumps()

pickle.loads()

只要函数名一样。

序列化.py

import pickle

def PoC():
print("这是Python序列化程序代码") data = {
'method':'GET',
'path':'/index',
'other':PoC
} with open("data.txt",'wb') as f:
f.write(pickle.dumps(data))

  

反序列化.py

import pickle

def PoC():
print("这是Python反序列化程序代码") f = open("data.txt",'rb')
data = pickle.loads(f.read())
data['other']()

  

从输出的结果上看,只要函数名相同就会去执行里面的代码。

修改PoC函数中的代码,改成打开计算器的,运行后发现可以弹窗计算器。

Python 序列化与反序列化的相关教程结束。

《Python 序列化与反序列化.doc》

下载本文的Word格式文档,以方便收藏与打印。