json、pickle序列化及反序列化

1. 将数据通过json序列化(不能对内存地址进行序列化

import json
info = {
    'name': "zhangsan",
    'age': '26',
    'sex': 'man'
}

f = open('t1.text','w')
f.write(json.dumps(info))
f.close()

 

2. 查看生成的文件

{"name": "zhangsan", "age": "26", "sex": "man"}

 

3. 重新加载json序列化文件,如下所示,打印结果将为26(在python3中,一个文件只能load一次)

#!/usr/bin/env python
#_*_ coding: utf-8 _*_

import json
f = open('t1.text')
data = json.loads(f.read())
print(data['age'])

  

 ---------------------------------------------------------------------------------------------------------------------------------------------------

 使用pickle对数据进行序列化,使用方法与json类似,只不过pickle支持的数据类型更多,但不能跨语言调用

1. 将数据序列化

#!/usr/bin/env python
#_*_ coding: utf-8 _*_

import pickle
info = {
    'name': "zhangsan",
    'age': '26',
    'sex': 'man'
}

f = open('t1.text','wb')
f.write(pickle.dumps(info))   # pickle.dump(info.f) 这两句效果一样
f.close()

 

2. 查看序列化文件内容,如下所示,内容为pickle专用格式

 

3. 重新加载序列化数据,打印结果将为26

#!/usr/bin/env python
#_*_ coding: utf-8 _*_

import pickle
f = open('t1.text','rb')
data = pickle.loads(f.read())   #data = pickle.load(f),这两句的效果一样
print(data['age'])

  

 

posted @ 2017-08-15 22:50  炉山假面目  阅读(118)  评论(0编辑  收藏  举报