python内容序列化与反序列化 json与pickle (待完善)
pickle 介绍
- 标准库,可以序列化任何类型的python对象
- 序列化产生的是字节流,要保存为二进制文件。可反序列化为python对象
- 可以往一个pickle放多个序列化的内容,读取时会一个一个读取,没有数据再读取的话会抛出错误EOFError
- 进行反序列化时,请注意数据来源可靠,它可能执行任意代码。(为什么?)
序列化到文件中
import pickle
f = open("a.pickle", "ab")
pickle.dump(data, f)
f.close()
反序列化
import pickle
f = open("a.pickle", "rb")
while True:
try:
data = pickle.load(f)
except EOFError:
break
f.close()
json库介绍
- 标准库,可序列化字典、列表、字符串、数字、布尔值和 None等常见类型
- 序列化后是字符串,可用于反序列化,人类可读
- 是否可以存储多组对象呢?
序列化
with open(filename, 'w') as f:
json.dump(data, f)
反序列化
with open(filename, 'r',encoding="utf-8") as f:
data = json.load(f)
浙公网安备 33010602011771号