python——pickle序列化模块与json序列化模块

pickle序列化模块与json序列化模块

将一个对象转换成bytes类型的过程叫序列化,将bytes对象转换成为原对象的过程叫反序列化。pickle只支持python的数据类型,而json在其他语言中也可以使用。

----------欢迎加入我的python新手交流群851211580------------
import pickle
with open('../day7_time_os_sys/account.db','rb+') as f:
    ret = pickle.load(f)  #load方法接收一个文件对象作为参数,将文件中的数据转换为原来的对象类型。这叫做对象的反序列化。
    ret[1000]['balance'] += 10000
    pickle.dump(ret,f)  # dump方法接收一个对象和文件流对象作为参数,将该对象转换为字节对象,并将字节对象写入文件,会将原文件覆盖掉
    print(f.tell())
    f.seek(0)
    data = f.read()
    ret2 = pickle.loads(data)  #loads方法接收bytes字节对象作为参数,并将字节转换为原来的对象
    ret2[1001]['balance'] +=1000
    data2 = pickle.dumps(ret2)  #dumps方法接收任意对象作为参数,并将其转换为bytes字节对象,这叫做对象的序列化。
    f.write(data2)

json的用法与pickle一样,只是更适合不同编程语言类型之间通信,且loads方法返回的对象类型中的元素不太一样。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值