第十二集:序列化模块pickle

'''
序列化:转化为而进行的过程或者反序列化的过程
1.把pyhont中的数据以文本或者二进制的方式进行转换还能反序列化
2.一般来说数据在程序与网络中传输和存储时 需要以更加方便的形式惊醒存储和传输
pickle模块提供的函数
dumps()序列化 可以把一个
loads()f反序列化
dump()把数据序列化并且写入文件
参数1 需要序列化的对象
参数2 写入的文件对象
pickle(序列化对象,写入文件的对象:fp)
load() 反序列化在一个文件中读取反序列化数据并且反序列化
'''

import pickle

vars = 'i lovee you'
res = pickle.dumps(vars)
print(res, type(res))
# 结果
# b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00\x8c\x0bi lovee you\x94.' <class 'bytes'>

res = pickle.loads(res)
print(res)

vars = {'name': 'cyz', 'age': 20}
# 序列化数据
res = pickle.dumps(vars)
with open('./data.txt', 'wb') as p:
p.write(res)
# 反序列化数据
with open('./data.txt','rb') as w:
res = w.read()
ss= pickle.loads(res)
print(ss)
# 结果
# b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00\x8c\x0bi lovee you\x94.' <class 'bytes'>
# i lovee you
# {'name': 'cyz', 'age': 20}
vars = {'name': 'cyz', 'age': 20}

with open('./data2.txt', 'wb') as p:
pickle.dump(vars,p)

with open('./data2.txt', 'rb') as p:
sd =pickle.load(p)
print(sd)



'''
什么是json: JavaScript Object Notation
json在js语言中时一个对象表示方法和python中的字典的第一规则和语法都很像
json在互联中又时一种通用的数据交换,数据传输,数据定义的一种格式
python中提供的json模块可以吧一些符合转换的python数据对象转换为json数据
json的读和写 和pickle模块的读写一样
json.dumps
json.loads
json.dump
json.load
'''
# 一下语法定义的时一个字典数据类型
vars = {'name': 'cyz', 'age': 20,'sex':'男'}
print(vars,type(vars))
# 使用json模块的dumps进行序列化
import json
res = json.dumps(vars)
print(res,type(res))
# 使用json模块的loads进行反序列化
res = json.loads(res)
print(res,type(res))


# 结果
# {'name': 'cyz', 'age': 20, 'sex': '男'} <class 'dict'>
# {"name": "cyz", "age": 20, "sex": "\u7537"} <class 'str'>
# {'name': 'cyz', 'age': 20, 'sex': '男'} <class 'dict'>
posted @ 2022-02-27 20:40  冬天里的狐狸  阅读(30)  评论(0编辑  收藏  举报