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

相关推荐
华研前沿标杆游学2 小时前
12月13日·东莞线下沙龙|少年企业家商业思维拓展营
python
北极糊的狐2 小时前
stream.findFirst().get() 报错 NoSuchElementException
开发语言·python
黑客思维者2 小时前
Python数据清洗实战:去重/标准化
开发语言·python·数据清洗·数据标准化
CryptoRzz2 小时前
对接印度股票市场数据 (India api) 实时k线图表
java·开发语言·python·区块链·maven
鹿角片ljp3 小时前
基于 BiLSTM 的中文文本相似度计算项目实现
python·nlp·lstm
小刘不想改BUG3 小时前
LeetCode 56.合并区间 Java
java·python·leetcode·贪心算法·贪心
Kratzdisteln3 小时前
【Web-Crawler-Steamdt】以项目文件steamdt_crawler.py学习python爬虫
爬虫·python·学习
秋刀鱼 ..3 小时前
2025年第二届智能制造与自动化国际研讨会(ISIMA 2025)
运维·人工智能·python·自动化·能源·制造
谷粒.3 小时前
云原生测试:在分布式系统中的质量保障策略
运维·python·测试工具·云原生·架构·自动化·测试覆盖率