序列化

import:导入

__init__:定义类的时候,添加__init__方法,在创建类的实例时候,会自动调用这个方法对类初始化。

>>> class Class:
...    def __init__(self,name,gender):
...        self.name=name
...        self.gender=gender
>>> testname=Class('lin','99')
>>> testname.gender
'99'

序列化:变量从内存中变成可存储或可传输的过程。python中称为pickling-->pickle模块

序列化之后,可以把序列化后的内容写入磁盘或传输到别的机器。

反序列化:把变量内容从序列化的对象重新读到内存里 unpickling


【序列化】

1、pickle.dumps()-->序列化成bytes

>>> import pickle
>>> d = dict(name='Bob', age=20, score=88)
>>> pickle.dumps(d)
b'\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.'

2、pickle.dump()--->序列化写入file-like Object

>>> f = open('dump.txt', 'wb')
>>> pickle.dump(d, f)
>>> f.close()


【反序列化】

1、pickle.loads()-->读到bytes 反序列化出对象

2、pickle.load()----->file-like Object反序列化出对象

>>> f = open('dump.txt', 'rb')
>>> d = pickle.load(f)
>>> f.close()
>>> d
{'age': 20, 'score': 88, 'name': 'Bob'}

【JSON】

不同的编程语言之间传递对象,必须把对象序列化成标准格式。更好的方式是序列化为JSON(字符串)

>>> import json
>>> d = dict(name='Bob', age=20, score=88)
>>> json.dumps(d)
'{"age": 20, "score": 88, "name": "Bob"}'

   json.dumps()-->接受一个必须参数(如dict)

   json.dump()接受两个必须参数,第一个如dict,第二个是类文件名

json.dumps()和dump序列化对象时用 default=lambda obj: obj.dict

json.loads()接受一个必需参数,把json变为如dict

json.load()接受一个必需参数(类文件名),把类文件中的json变为如dict

json.loads()和load反序列化json(对象)时需要object_hook=参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值