码迷,mamicode.com
首页 > 编程语言 > 详细

Python 序列化与反序列化

时间:2020-02-13 16:38:11      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:Python序列   c函数   pen   过程   bsp   代码   div   就会   json   

 

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

 

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序列   c函数   pen   过程   bsp   代码   div   就会   json   

原文地址:https://www.cnblogs.com/endust/p/12303730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!