制心一处,无事不办.
什么是序列化,为什么需要序列化?
    1.序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据
    2.数据在网络中进行传输和存储时,需要以更加方便的方式进行
注意:在python中使用pickle和json需要    import json,pickle
一、内置模块-序列化-pickle
pickle模块提供的函数:
    dumps() 序列化,可以把一个python的任意对象序列化成为一个二进制
        pickle.dumps(vars)
    loads() 反序列化,可以把一个序列化后的二进制数据反序列化为python的对象
        pickle.loads(vars)
下面的dump和load方法将数据与文件连接了起来    dump()  序列化,把一个数据对象进行序列化并写入到文件中
        参数一:需要序列化的数据对象
        参数二:写入的文件对象
        pickle.dump(vars,fp)
    load()  反序列化,在一个文件中读取序列化的数据,并且完成反序列化
        参数:文件对象
        pickle.load(fp)**
##1.基本序列化与反序列化操作
_vars = ‘iloveyou’   #b’\x80\x04\x95\x0c\x00\x00\x00\x00\x00\x00\x00\x8c\x08iloveyou\x94.’ 
使用pickle.dumps方法进行序列化成为一个二进制的数据
_res = pickle.dumps(vars)
print(res,type(res))
_#使用loads方法进行反序列化
_res = pickle.loads(res)
print(res)
#如何把一个python数据进行序列化后写入文件?并且再次读取出来?#使用dumps loads 方法完成
#定义数据
vars = {‘name’:‘张三’,‘age’:22,‘sex’:‘男’}
#进行序列化
res = pickle.dumps(vars)
#写入文件
_with open(‘../0.test/data.txt’,‘wb’) as fp:
    fp.write(res)
#读取文件中的反序列化的二进制文件,并完成反序列化
#打开文件进行读取
with open(‘../0.test/data.txt’,‘rb’) as fp:
    res = fp.read()
_#进行反序列化
_vardict = pickle.loads(res)
print(vardict)
#使用pickle提供的load和dump完成以上写入文件并读取操作vars = {‘name’:‘张三’,‘age’:22,‘sex’:‘男’}
#写
_with open(‘../0.test/data.txt’,‘wb’) as fp:
    pickle.dump(vars,fp)
#读
with open(‘../0.test/data.txt’,‘rb’) as fp:
    res = pickle.load(fp)
print(res)
二、内置模块-序列化-json
什么是json?
    json在互联网中又是一种通用的数据交换,数据传输,数据定义的一种数据格式
    
python中提供的json模块,可以把python数据对象,转为json格式的数据
_#以下语法格式定义的是一个   字典  的数据类型
_vardict = {“name”:“admin”,“age”:22}
_#使用json模块中的dumps方法进行 json格式的转换
_res = json.dumps(vardict)
print(res,type(res))
_#使用loads方法进行反序列化
_res = json.loads(res)
print(res,type(res))
_##  dump 和 load 方法 与pickle的是一个意思
#写
_vardict = {“name”:“admin”,“age”:22}
with open(‘../0.test/data.json’,‘w’) as fp:
    json.dump(vardict,fp)
#读
with open(‘../0.test/data.json’,‘r’) as fp:
    new = json.load(fp)
print(new)
