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参数决定如何排序。

相关推荐
郝学胜-神的一滴4 分钟前
并查集深度入门:从玄学抽象到 QuickFind & QuickUnion 源码实战
数据结构·c++·python·程序人生·算法·软件开发
她说可以呀11 分钟前
Spring AI 常用 Advisor
人工智能·python·spring
小玮看世界17 分钟前
[Python] str() 和 join() 的区别与实战避坑指南
前端·javascript·python
卷无止境19 分钟前
FastAPI 的 WebSocket 装了些什么
后端·python·fastapi
码云骑士20 分钟前
108-vLLM推理引擎-PagedAttention-连续批处理-吞吐提升10倍
python·vllm
DeepVisionary23 分钟前
从微软砍掉Copilot的AI播客、Deep Research看AI产品“做减法“:个人版与企业版合并,超级应用呼之欲出
python·自动化
IT·侯老师24 分钟前
qq-auto-reply
python
迷迭香yy24 分钟前
大宗交易折溢价因子怎么挖掘本地化Python全流程实战
开发语言·人工智能·python
卷无止境33 分钟前
FastAPI 的 Request 类装了什么
后端·python
Yweir34 分钟前
AI大模型开发-Python介绍、版本说明
开发语言·人工智能·python