json & pickle
什么是序列化
- 序列化是指把内存里的数据类型转变成字符串,以便使其能存储在硬盘和网络传输。因为只能接收bytes类型。
为什么要序列化
分类
- json:用于字符串和python数据类型之间进行转换
- pickle:python特有的特性
方法
使用
import json
# 最好是双引号
dic = {"name": '江子牙', 'age': 21, "性别": "男"}
print('序列化之前:', type(dic), dic)
j1 = json.dumps(dic, ensure_ascii=False)
print('序列化之后:', type(j1), j1)
dic1 = json.loads(j1)
print('反序列化:', type(dic1), dic1)
# json文件相关操作
f1 = open('1.json', 'w+', encoding='utf-8')
# 文件写入
json.dump(j1, f1, ensure_ascii=False)
f1.seek(0)
data = f1.read()
print('dump写入后的数据', data)
f1.close()
# 文件读取
f2 = open('1.json', 'r', encoding='utf-8')
res = json.load(f2)
print('load读取写入的数据', res)
json是什么
- json是一种轻量级的数据交换格式,简洁清晰的层次结构使人易于阅读,提高网络传输效率(以bytes传输)
pickle VS json
- json
- 优点:跨语言,体积小,
- 缺点:支持的数据类型少,List str int tuple dict
- pickle
- 优点:专为python设计,支持python所有的数据类型,包括函数
- 缺点:只能在python中使用,存数数据占用空间大