一、什么是对象序列化?
将内存的一个抽象概念/逻辑概念(对象)转换成字节或者字符数据的过程。
1、pickle模块(二进制和对象之间的序列化)
1、dump——将对象序列化称为字节(二进制)数据,并且保存到file中
2、dumps——将数据序列化成为字节数据
3、load——将一个file对象反序列化
4、loads——将一个字节数据反序列化为对象
2、json模块(字符串和对象之间的序列化)
1、dump——将对象序列化称为字符数据,并且保存到file中
2、dumps——将数据序列化成为字符数据
3、load——将一个file对象反序列化
4、loads——将一个字符数据反序列化为对象
pickle和json的用法是一样的,要注意的是json这个模块一般用来序列化字典对象,或者转换json数据,但是其它对象也是可以的。
例子:(pickle+gzip)
import gzip
import pickle
import sys
a = "111"
b = pickle.dumps(a)
print('pickle_type: ', type(b))
print('a_size: ', sys.getsizeof(a))
gzip_b = gzip.compress(b)
print('gzip_type: ', type(gzip_b))
print('gzip_size: ', sys.getsizeof(gzip_b))
str_b = str(gzip.compress(b))
print('str_gzip_size: ', sys.getsizeof(str_b))
'''
pickle_type: <class 'bytes'>
a_size: 52
gzip_type: <class 'bytes'>
gzip_size: 66
str_gzip_size: 137
'''
网友评论