首页 > 解决方案 > 如何仅在嵌套模式中解析属性值?

问题描述

我使用marshmallow将我的SQLAlchemy实体转储为 JSON,如下所示:

class EntitySchema(ma.ModelSchema):
    class Meta:
        model = Entity
    children = fields.List(Nested(ChildSchema(only=("id",))))

问题是上面的代码使用嵌套对象而不是纯 int-list 生成 JSON:

{
    ...
    "children": [{"id": 1}, {"id": 2}]
}

如何告诉棉花糖只解析id属性的值:"children": [1, 2]

标签: pythonmarshmallowmarshmallow-sqlalchemy

解决方案


使用Pluck字段:

class EntitySchema(ma.ModelSchema):
    class Meta:
        model = Entity
    children = fields.List(fields.Pluck(ChildSchema, "id"))

推荐阅读