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

相关推荐
站大爷IP9 分钟前
那天,我的Python函数死活改不了全局变量
python
右耳朵猫AI10 分钟前
Python周刊2026W22 | Django 6.1 Alpha 1发布、Nuitka 4.1发布、PEP 831终稿、PEP 808已接受
开发语言·python·django
Wonderful U16 分钟前
Python+Django实战|美食菜谱分享与食材采购一体化系统:食谱发布收藏、图文教程、食材商城、购物车、订单管理、美食点评、智能食谱推荐
python·django·美食
秦jh_27 分钟前
【LangChain核心组件】少样本提示(示例选择器)
人工智能·python·langchain
资深流水灯工程师34 分钟前
PyCharm 增强插件完整安装与配置指南(PySide6 开发专用)
ide·python·pycharm
Kobebryant-Manba41 分钟前
学习模型构造
python·深度学习·学习
天天进步201543 分钟前
Python全栈项目--基于Python的数据库管理工具
开发语言·数据库·python
阿提说说44 分钟前
我的 NVIDIA 考试攻略
python·大模型·agent
xyz_CDragon1 小时前
OpenClaw 局域网调用 Ollama 本地大模型:完整配置与踩坑指南
python·ai编程·集成学习·ollama·deepseek·openclaw
极光代码工作室1 小时前
基于NLP的论文关键词提取系统
python·深度学习·自然语言处理·nlp