序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化
反序列化:把变量内容从序列化的对象重新读到内存中,这一过程称为反序列化
为什么要序列化?
1.持久保存状态
一个软件的执行就是在处理一系列状态的变化,在计算机编程中,‘状态’会以各种各样有结构的数据类型的形式被保存到内存中。但是内存是不能永久保存数据的,当程序在运行了一段时间后,我们断电或者重启程序,内存中关于这个程序之前的数据都被清空了。
在断电或者重启程序之前将程序当前内存中所有的数据都保存下来,即保存到文件中。以便下次程序执行能够从文件中载入之前的数据,然后继续执行。这一过程就称为序列化。
区分json和pickle
json和pickle模块均提供了四个功能:dumps,dump,loads,load
json可跨平台,用于字符串和python数据类型进行转换
pickle不能跨平台,是python中特有的模块,支持python所有的数据类型间进行转化
注意:python2可以dump多次,load多次,dump和load的次数是一一对应的
python3只能dumo多次,load、loads一次