json序列化,反序列化,pickle

json特点:

        不同语言之间的相互转换,只能对字典,列表,字符串简单的序列化,不能对函数进行序列化。

     1. 内存————>硬盘(序列化)————>json.dump

       

import json
info={
    'name':'huyong',
    'age':26
}
f=open("test.text","w")
f.write(json.dumps(info))
f.close()

 

     2.硬盘————>内存(反序列化)————>json.loads

import json
f=open("test.text","r")
date=json.loads(f.read())
print(date['age'])

  

pickle特点:

      一.仅仅python语言之间的相互转换,能做复杂的序列化,能函数进行序列化。

      二.序列化的不是内存地址,是整个对象

      1. 内存————>硬盘(序列化)————>pickle.dump                  #写入文件的类型为byte

import json,pickle
info={
    'name':'huyong',
    'age':26
}
f=open("test.text","wb")  #写入的文件为byte类型
#f.write(json.dumps(info))
f.write(pickle.dumps(info))
f.close()

  

      2.硬盘————>内存(反序列化)————>pickle.loads

import json,pickle
f=open("test.text","rb")
#date=json.loads(f.read())
date=pickle.loads(f.read())
print(date['age'])

  3.只能dumps一次,loads也只能一次;就像VM里面的快照,如果需要保存多次,只能保存不同名字的快照。

posted @ 2017-09-11 23:47  胡飞侠5  阅读(62)  评论(0)    收藏  举报