在 marshmallow 中使用 `fields.Nested` 只嵌套模式的一部分
use `fields.Nested` in marshmallow to only nest PART of the schema
所以当我尝试在 marshmallow 中使用 fields.Nested
时我有一个问题,我想使用 only
仅将部分架构提取到字段中,但它不起作用而且它也没有给我一个错误(这应该意味着它只能识别?),所以我不确定为什么。
棉花糖版本:3.0.0b11
class ChildSchema(Schema):
attrA = fields.String(example="a"),
attrB = fields.Integer(example=1),
class ParentSchema(Schema):
attrC = fields.Nested(ChildSchema, only=["attrA"])
我期望的是:
"attrC":{
"attrA": "a"
}
但是,我看到了:
"attrC":{
"attrA": "a",
"attrB": 1,
}
我不清楚 example
在您的架构中做了什么。它不是 Schema
对象的参数。此外,还不清楚您是如何调用架构并尝试显示结果的。但是,以下会产生所需的结果:
from marshmallow import Schema, fields, pprint
class ChildSchema(Schema):
attrA = fields.Str(example="a")
attrB = fields.Integer(example=1)
class ParentSchema(Schema):
attrC = fields.Nested(ChildSchema, only=['attrA'])
schema = ParentSchema()
result = schema.dump({'attrC': {'attrA': 'five', 'attrB': 5}})
pprint(result)
#{'attrC': {'attrA': 'five'}}
所以当我尝试在 marshmallow 中使用 fields.Nested
时我有一个问题,我想使用 only
仅将部分架构提取到字段中,但它不起作用而且它也没有给我一个错误(这应该意味着它只能识别?),所以我不确定为什么。
棉花糖版本:3.0.0b11
class ChildSchema(Schema):
attrA = fields.String(example="a"),
attrB = fields.Integer(example=1),
class ParentSchema(Schema):
attrC = fields.Nested(ChildSchema, only=["attrA"])
我期望的是:
"attrC":{
"attrA": "a"
}
但是,我看到了:
"attrC":{
"attrA": "a",
"attrB": 1,
}
我不清楚 example
在您的架构中做了什么。它不是 Schema
对象的参数。此外,还不清楚您是如何调用架构并尝试显示结果的。但是,以下会产生所需的结果:
from marshmallow import Schema, fields, pprint
class ChildSchema(Schema):
attrA = fields.Str(example="a")
attrB = fields.Integer(example=1)
class ParentSchema(Schema):
attrC = fields.Nested(ChildSchema, only=['attrA'])
schema = ParentSchema()
result = schema.dump({'attrC': {'attrA': 'five', 'attrB': 5}})
pprint(result)
#{'attrC': {'attrA': 'five'}}