Python3 json、pickle序列化与反序列化

注意:可以dumps多次,loads只能一次,一般我们只dumps一次,loads一次,多个版本就写入多个文件

一、json序列化与反序列化:

支持各种语言数据交互,但只能处理字典,列表,集合等简单的数据类型

1.json序列化dump

1
2
3
4
5
6
7
8
import json
info = {
    "name":"bert",
    "age":25
    }
# json 序列化
write_f = open('text','w',encoding='utf-8')
json.dump(info,write_f) # 相当于 write_f.write(json.dumps(info))

2.json 反序列化 load

1
2
3
4
# json 反序列化
read_f = open('text','r',encoding='utf-8')
data = json.load(read_f) #相当于 data = json.loads(read_f.read())
print(data["name"])

二、pickle序列化与反序列化:

pickle 是Python专有的不支持其他语言, 但它可以序列化python所有数据,但只能用二进制格式

1.pickle 序列化 dump

1
2
3
4
5
6
7
8
9
10
11
12
13
import pickle
 
def func(name):
    print(name)
 
info = {
    "name":"bert",
    "age":25,
    "func":func
    }
#pickle 序列化
write_f = open("text","wb")
pickle.dump(info,write_f)  #相当于 write_f.write(pickle.dumps(info))

2.pickle 反序列化 load

1
2
3
4
#pickle 反序列化
read_f = open("text","rb")
data = pickle.load(read_f) #相当于 data = pickle.loads(read_f.read())
data["func"]("张三")
posted @ 2018-07-17 17:26  CansonHai  阅读(251)  评论(0编辑  收藏  举报