pickle、json

2020-08-06  本文已影响0人  cc_cv

一、什么是对象序列化?
将内存的一个抽象概念/逻辑概念(对象)转换成字节或者字符数据的过程。

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
'''
上一篇下一篇

猜你喜欢

热点阅读