python - 在棉花糖中使用 `fields.Nested` 只嵌套部分模式
问题描述
所以当我尝试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'}}
推荐阅读
- javascript - 组织后端(Node)进程和使用这些进程的一部分的前端(Vue / Nuxt)的最佳方式
- c# - 是否有一种通用方法可以将当前用户转换为其角色之一,例如管理员?
- sql-server - 如何通过查询从组内的其他表中获取数据?
- java - 使用 ByteBuddy 的检测不适用于 3-rd 方类
- javascript - 在本地服务器中,我们的 Ajax 代码正在工作,同时当我们在 Live 服务器中部署时,它不工作
- python - Python:根据给定索引使用现有 df 中的行创建新数据框
- javascript - 事件监听器 Javascript
- java - 将 For-Loop 转换为 Java 流
- python - 检查过去的日期是否是工作日
- xml - WixUI_Mondo 和 WixUI_InstallDir