json&pickle模块

Posted on 2019-03-02 14:09  杜卡迪S11  阅读(87)  评论(0编辑  收藏  举报

序列化:我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化

反序列化:把变量内容从序列化的对象重新读到内存中,这一过程称为反序列化

为什么要序列化?

1.持久保存状态

一个软件的执行就是在处理一系列状态的变化,在计算机编程中,‘状态’会以各种各样有结构的数据类型的形式被保存到内存中。但是内存是不能永久保存数据的,当程序在运行了一段时间后,我们断电或者重启程序,内存中关于这个程序之前的数据都被清空了。

在断电或者重启程序之前将程序当前内存中所有的数据都保存下来,即保存到文件中。以便下次程序执行能够从文件中载入之前的数据,然后继续执行。这一过程就称为序列化。

 

区分json和pickle

json和pickle模块均提供了四个功能:dumps,dump,loads,load

json可跨平台,用于字符串和python数据类型进行转换

pickle不能跨平台,是python中特有的模块,支持python所有的数据类型间进行转化

 

注意:python2可以dump多次,load多次,dump和load的次数是一一对应的

   python3只能dumo多次,load、loads一次