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

相关推荐
魔都吴所谓3 小时前
【Python】从扁平参数到层级架构:基于Python argparse构建校园管理CLI工具实战
python·编程语言
zjy277773 小时前
Layui tab选项卡如何动态根据ID值进行程序化切换
jvm·数据库·python
m0_602857763 小时前
Redis如何修复槽位分配重叠的脏状态_使用redis-cli --cluster fix工具扫描并修复不一致的Slot
jvm·数据库·python
2301_766283444 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
tang777894 小时前
代理IP质量检测实战:Python实现IP可用性、延迟、匿名度自动测试脚本
大数据·爬虫·python·网络协议·tcp/ip
2501_921649494 小时前
企业定制金融数据 API:从架构设计到 Python 接入实战
大数据·开发语言·python·websocket·金融·量化
2601_956139424 小时前
政府事业机构品牌策划公司哪家专业
大数据·人工智能·python
Jmayday4 小时前
Pytorch:AI歌词生成器
人工智能·pytorch·python
枫叶林FYL4 小时前
项目八 云资源成本优化与治理平台
后端·python·自然语言处理·flask