python序列化-dumps的妙用

一、关于dumps的妙用

假设有一个数据a,形如

python 复制代码
a = {
	"name": "xiaoming",
	"age": 18,
	"info": ObjectA
}
其中,ObjectA是一个对象,形如
ObjectA:{
	"addr": "北京",
	"company": ObjectB
}
其中,ObjectB又是一个对象。。。。。。
如果一直有对象嵌套对象,此时我们该如何序列化呢?python中是不能序列化对象的。

使用json.dumps(a, default=lambda o: o.dict)即可解决。其中,default参数是:当 default 被指定时,其应该是一个函数,每当某个对象无法被序列化时它会被调用。它应该返回该对象的一个可以被 JSON 编码的版本或者引发一个 TypeError。如果没有被指定,则会直接引发 TypeError。

注:dumps函数的参数default设计思想很巧妙,他把dumps序列化数据时的代码解释权交给了函数调用方,由调用方决定如何解释不能被序列化的数据。这种思想很常见,比如filter,sorted函数。sorted的key参数,由key参数决定如何排序。

相关推荐
2401_8914504616 小时前
Python上下文管理器(with语句)的原理与实践
jvm·数据库·python
helloworldandy16 小时前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
2301_7903009617 小时前
Python单元测试(unittest)实战指南
jvm·数据库·python
VCR__17 小时前
python第三次作业
开发语言·python
韩立学长17 小时前
【开题答辩实录分享】以《助农信息发布系统设计与实现》为例进行选题答辩实录分享
python·web
2401_8384725118 小时前
使用Scikit-learn构建你的第一个机器学习模型
jvm·数据库·python
u01092727118 小时前
使用Python进行网络设备自动配置
jvm·数据库·python
工程师老罗18 小时前
优化器、反向传播、损失函数之间是什么关系,Pytorch中如何使用和设置?
人工智能·pytorch·python
Fleshy数模18 小时前
我的第一只Python爬虫:从Requests库到爬取整站新书
开发语言·爬虫·python
CoLiuRs18 小时前
Image-to-3D — 让 2D 图片跃然立体*
python·3d·flask