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

相关推荐
代码山河14 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
在世修行14 小时前
智学文枢:题目流水线
python·多线程·状态机·pyside
梯度下降者14 小时前
零基础入门Python 爬虫
爬虫·python·数据分析·入门指南·webcrawler
“AI国潮设计-小江”16 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc17 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读17 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
外收内放17 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下18 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
时早玖沐18 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑
python·开源·ai编程
触底反弹18 小时前
🚀 FastAPI 五大重难点深度剖析:从 500 报错到彻底搞懂 Depends、Pydantic 与 SQLAlchemy
python·fastapi