![645021b7e36e54fdc819e565de408866.png](https://i-blog.csdnimg.cn/blog_migrate/b47e404ce73f0bf33c8c8d4287a8e46d.jpeg)
json&pickle模块
在没学模块前,我们通常使用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型eval都能用,但遇到特殊类型的数据时,eval就不管用了,所以eval的重点还是通常用来执行一个字符串表达式,并返回表达式的值
序列化
序列化是把对象(变量)从内存中变成可存储或传输的过程,在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flattening等等,都是相同的意思
序列化的原因
①持久保存状态(数据)
需知一个软件/程序的执行就在处理一系列状态的变化,在编程语言中,'状态'会以各种各样有结构的数据类型(也可简单的理解为变量)的形式被保存在内存中。内存是无法永久保存数据的,当程序运行了一段时间,我们断电或者重启程序,内存中关于这个程序的之前一段时间的数据(结构)都被清空了。
在断电或重启程序之前将程序当前内存中所有的数据都保存下来(保存到文件中),以便于下次程序执行能够从文件中载入之前的数据,然后继续执行,这就是序列