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 多个文件。

 

posted @ 2018-01-03 15:27  东郭仔  阅读(119)  评论(0)    收藏  举报