json&pickle 序列化
Posted 一群羊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json&pickle 序列化相关的知识,希望对你有一定的参考价值。
把内存数据转换字符叫序列化
把字符转成内存数据类型反序列化
json,用于字符串 和 python数据类型间进行转换
dumps 和loads 匹配使用
dumps 只能转成字符串,loads只能从字符串转换成数据类型。只能保存在内存里。
import json
date = {
‘roles‘:[
{‘role‘: ‘monster‘, ‘type‘: ‘pig‘, ‘HP‘: ‘50‘},
{‘role‘: ‘hero‘, ‘type‘: ‘关羽‘, ‘HP‘: ‘80‘}
]
}
l = {‘a‘:1, ‘b‘:2}
d = json.dumps(date)
d2 = json.loads(d)
dump 转成字符串并写入文件, load,读文件并转成数据类型
import json
date = {
‘roles‘:[
{‘role‘: ‘monster‘, ‘type‘: ‘pig‘, ‘HP‘: ‘50‘},
{‘role‘: ‘hero‘, ‘type‘: ‘关羽‘, ‘HP‘: ‘80‘}
]
}
l = {‘a‘:1, ‘b‘:2}
with open(‘json.file‘, ‘r+‘, encoding=‘UTF-8‘) as f:
json.dump(date, f) #写入文件
json.dump(l,f) #写入文件
date = json.load(f) #读取文件
json.dumps
json.loads
1.把内存数据通过网络远程给其他人
2定义不同语言之前的交互规则,跨平台
1.纯文本,坏处:不能共享复杂的数据类型
2.xml坏处:占空间大
3.json,简单,可读性好
load 只能一次
pickle,用于python特有的类型 和 python的数据类型间进行转换
pickle.dumps pickle.loads 匹配使用
import pickle d = {‘name‘: ‘zheng‘, ‘age‘: 23} l = [1,2,3,4,‘rain‘] a = pickle.dumps(d) b = pickle.dumps(l) pickle.loads(a) pickle.loads(b)
pickle.dump pickle.load 匹配使用
l = [1,2,3,4,5] f = open(‘pick.pkl‘, ‘wb‘) pickle.dump(l,f) f = open(‘pick.pkl‘, rb‘) pickle.load(f)
以上是关于json&pickle 序列化的主要内容,如果未能解决你的问题,请参考以下文章