python 入坑路-json and pickle 序列化
玩游戏时,需要存档。vm虚拟机,设置挂起。需要保存一些不规则的数据到硬盘中。
序列化:把内存的数据对象变成字符串,
反序列化:把保存到硬盘的数据读到内存中
json :只能 序列号一些简单python 数据类型,例如:字典,列表,字符串等
是所有语言通用,与其他语言交互。高级的类,函数,特性不一样, 类似xml
xml 正在被json 取代,标记式语言,
import json #导入模块
info ={"name":"keven","age":18}
f=open("test","w")
f.write(json.dumps(info))
f.close()
#反序列化
f=open("test","r“)
data=json.loads(f.read())
f.close()
print(data["age"])
pickle 可以序列化 python 支持的所有数据类型 ,pickle 只是在python 上用,json 通用。
序列化不是内存地址,是整个数据对象。
import pickle
def sayhi(name):
print("hi{}".format(name))
info ={"name":"keven","age":18,"func":sayhi}
f=open("test1","wb")
print(pickle.dumps(info))
f.write(pickle.dumps(info))
f.close()
#反序列化
import json,pickle
def sayhi(name):
#print("hi{},".format(name))
print("hello {}".format(name))
f=open("test1","rb")
data=pickle.loads(f.read())
f.close()
print(data["age"])
sayhi("keven")
python 2.x 可以 dump 很多次,也可以load 很多次,
python 3.x 可以dump多次,load 出错。
原则,dump 一次,load 一次,如果要dump 多次,就dump 多个文件。

浙公网安备 33010602011771号