Python marshmallow 库
前言
使用 Python 经常需要将一些数据序列化存储到本地
同时又想要反序列化将本地的 json 数据转换为对象。
通常的解决方案是使用数据库的 orm 方案,用 orm 对象来同步数据库。
数据全部附着在 orm 上,当 orm 上的数据改变时直接修改到数据库上。
但是在我的工作使用场景中,Data Centric 的流程更为推崇,因此输出一个 json 文件会更好一点。
那么 marshmallow 库就是一个很不错的选项。
另外这个库可以和 之前提到的 attrs 库可以结合使用。 文章
什么是序列化 什么是 orm
序列化就是将代码对象转换为纯数据进行存储
反序列化就是将纯数据重新转换为 代码对象
代码对象可以拥有特定的方法,可以直接触发对数据的处理。
orm 全称是 Object-relational Mappers
通常是一个定义了对象实例化规则的类。
通过操作这个类的实例就可以用代码的方式将数据进行互相转换。

上面的图片就是传统 orm 实现的效果,可以用 orm 对象来执行 sql 语句从而简化数据库同步的操作,同时也增加了代码的安全性。
这个操作实现了内存到硬盘桥梁,管理更加清晰方便。
marshmallow 介绍
marshmallow 基本用法
和其他 orm 库一样,marshmallow 需要定义 Schema 类作为数据约束。
1  | import attr  |