Python 棉花糖序列化-一种基于每个字段捕获异常的方法?

Python 棉花糖序列化-一种基于每个字段捕获异常的方法?,python,mongodb,mongoengine,marshmallow,Python,Mongodb,Mongoengine,Marshmallow,有没有办法用棉花糖[1]按字段捕获异常(访问属性时发生的异常) 我想使用棉花糖来序列化mongo db(mongoengine)数据库的文档。 使用嵌套模式时,引用的对象也会序列化 但是,如果引用不存在,mongoengine会抛出一个错误。我希望在序列化过程中捕获该错误(例如,将字段设置为null) [1] 用于将复杂数据类型(如对象)转换为本机Python数据类型和从本机Python数据类型转换为复杂数据类型的库我最终对嵌套的字段进行了子类化,并覆盖了get_value方法 from mar

有没有办法用棉花糖[1]按字段捕获异常(访问属性时发生的异常)

我想使用棉花糖来序列化mongo db(mongoengine)数据库的文档。 使用嵌套模式时,引用的对象也会序列化

但是,如果引用不存在,mongoengine会抛出一个错误。我希望在序列化过程中捕获该错误(例如,将字段设置为null)


[1] 用于将复杂数据类型(如对象)转换为本机Python数据类型和从本机Python数据类型转换为复杂数据类型的库

我最终对
嵌套的
字段进行了子类化,并覆盖了
get_value
方法

from marshmallow import Schema, fields
from mongoengine.errors import DoesNotExist


class SafeNested(fields.Nested):
    def get_value(self, *args, **kwargs):
        try:
            return super().get_value(*args, **kwargs)
        except DoesNotExist:
            return {}

最后,我对
Nested
字段进行了子类化,并重写了
get\u value
方法

from marshmallow import Schema, fields
from mongoengine.errors import DoesNotExist


class SafeNested(fields.Nested):
    def get_value(self, *args, **kwargs):
        try:
            return super().get_value(*args, **kwargs)
        except DoesNotExist:
            return {}