Python3的pickle模块及其使用

pickle模块进行序列化:


import pickle


# 不能在文件中查看写入的内容

def foo():
    print('ok')


list1 = [1, 2, 3, 5, 6, 7]

data = pickle.dumps(foo)  # 将函数序列化并写入 支持很多数据类型

data = pickle.dumps(list1)  # 列表 字典 函数 类 等
f = open('pickle', 'wb')  # 2进制模式 写入文件
f.write(data)
f.close()

 要点:

  • pickle 支持函数,类,列表,字典等数据的序列化
  • dumps() 只有这一个加载函数
  • 以二进制形式进行序列化 'wb'

pickle模块进行反序列化:


import pickle

f = open('pickle', 'rb')  # 2进制 模式读取
data = f.read()
data = pickle.loads(data)  # 获取数据

# data() # 执行获取到的函数会报错,因为内存地址发生变化了
print(data) # 如果是列表 或字典 正常打印

 


 要点:

  • 注意,函数在反序列化后,由于内存地址发生变化,不能直接执行
  • loads() 获取数据只有这一个函数
  • 一定是二进制模式 'rb'

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值