python基础之序列化和反序列化

Python023

python基础之序列化和反序列化,第1张

1、序列化:就是把不可传输的对象转换为可存储或可传输的过程

2、反序列化:就是把在磁盘,等介质中的数据转换为对象

1、序列化并保存文件

obj = [1, 2, 3, 4]

with open('test.txt', 'wb') as f:

    pickle.dump(obj, f)

with open('test.txt', 'rb') as f:

    new_obj = pickle.load(f)

2、序列化成string形式

obj = [1, 2, 3, 4]

str1 = pickle.dumps(obj)

new_obj = pickle.loads(str1)

1、序列化并保存到文件:dump、load

2、序列化成json对象:dumps、loads

Pickle模块中最常用的函数为:

(1)pickle.dump(obj, file, [,protocol])

函数的功能:将obj对象序列化存入已经打开的file中。

参数讲解:

obj:想要序列化的obj对象。

file:文件名称。

protocol:序列化使用的协议。如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。

(2)pickle.load(file)

函数的功能:将file中的对象序列化读出。

参数讲解:

file:文件名称。

(3)pickle.dumps(obj[, protocol])

函数的功能:将obj对象序列化为string形式,而不是存入文件中。

参数讲解:

obj:想要序列化的obj对象。

protocal:如果该项省略,则默认为0。如果为负值或HIGHEST_PROTOCOL,则使用最高的协议版本。

(4)pickle.loads(string)

函数的功能:从string中读出序列化前的obj对象。