我收到的口述如下(事先不知道确切的结构)
{
'a': 1,
'id': UUID('6b3acb30-08bf-400c-bc64-bf70489e388c'),
}
此dict不可直接序列化,但将id
的值强制转换为str
时,它是:
import json
import uuid
print(json.dumps({
'a': 1,
'id': str(uuid.UUID('6b3acb30-08bf-400c-bc64-bf70489e388c')),
}))
# outputs {"a": 1, "id": "6b3acb30-08bf-400c-bc64-bf70489e388c"}
在一般情况下,如果我有一些元素需要在序列化之前强制转换为str
,是否有一种通用(pythonic)方法来自动进行转换
最好的选择是重写
JSONEncoder.default
方法:如果您想要字符串化默认编码器无法处理的所有内容,您可以使用以下技巧,尽管我建议您控制要支持的类型
文档:https://docs.python.org/3/library/json.html#json.JSONEncoder.default
没有,但您可以单独检查数据项,并在需要时进行转换。这样,您就不需要事先知道数据结构。考虑以下事项:
相关问题 更多 >
编程相关推荐