本文目录为:
1、什么是序列化
2、Python序列化过程
3、Python反序列化过程
4、Python json序列化和反序列
全文内容为:
1、什么是序列化
程序运行的过程中,所有变量都是在内存中操作的,当程序一旦执行完毕,结束退出后,变量占有的内存就被操作系统回收了。
因此我们需要将某些数据持久化存储到磁盘中,下次运行的时候从磁盘中读取相关数据。
我们将变量从内存中变成可以存储或传输的过程称之为序列化,在Python中叫做pickling,在其它语言中也称之为
serialization、marshaling、flattening等等,说的都是一个意思。
反之,则为反序列化,称之为unpickling,把变量内容从序列化的对象重新读取到内存中。
2、Python序列化过程
3、Python反序列化过程
4、Python json序列化和反序列
此处先简单梳理下JSON类型和Python类型对照关系为:
接着讲解Python的JSON序列化和反序列化过程为:
最后,我们讲解下常见的class对象的json序列化和反序列化过程。
以上代码执行后,出现问题为:
提示is not JSON serializable错误信息,处理办法为:
小结为:
Python序列化和反序列化用到了pickle和json,建议使用json,因为更加通用、简洁。
json模块的dumps()和loads()函数是定义得非常好的接口。