Python 序列化与反序列化
Posted 看不尽的尘埃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 序列化与反序列化相关的知识,希望对你有一定的参考价值。
序列化是为了将内存中的字典、列表、集合以及各种对象,保存到一个文件中(字节流)。而反序列化是将字节流转化回原始的对象的一个过程。
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 序列化与反序列化的主要内容,如果未能解决你的问题,请参考以下文章