我希望能够获取一些Python对象(更准确地说,是一个dataclass
),并使用模式将其转储到它的dict表示中。让我举个例子:
from marshmallow import Schema, field
import dataclasses
@dataclasses.dataclass
class Foo:
x: int
y: int
z: int
class FooSchema(Schema):
x = field.Int()
y = field.Int()
FooSchema().dump(Foo(1,2,3))
如您所见,模式与Foo
定义不同。我希望在转储时能够以某种方式识别它-因此我会得到一些ValidationError
,并解释有一个额外的字段z
。它不一定非得是.dump()
,我看了.load()
和.validate()
,但只有前者似乎接受对象,而不仅仅是dict
有没有办法在棉花糖中做到这一点?因为现在当我做这个转储时,我只会得到一个字典:{"x": 1, "y": 2}
当然没有z
,但是没有任何错误。我希望在转储对象中没有键(比如z
在模式中,但不在Foo
)的情况下也有同样的行为。这个世界基本上是作为对类本身所做更改的一个健全检查——也许如果在棉花糖中不可能,你知道一些库/技术可以做到这一点吗
目前没有回答
相关问题 更多 >
编程相关推荐