gpt4 book ai didi

python - 我应该如何在 Marshmallow Python 中添加一个包含字典列表的字段?

转载 作者:行者123 更新时间:2023-11-28 16:57:35 24 4
gpt4 key购买 nike

Marshmallow 中,为了拥有一个列表字段,您可以使用:

include_in = fields.List(cls_or_instance=fields.Str(),
default=['sample1', 'sample2'])

没关系,但我有一个新要求,即在一个字段中有一个字典列表。示例负载:

[{
"name": "Ali",
"age": 20
},
{
"name": "Hasan",
"age": 32
}]

此负载是更大架构的一部分,所以现在的问题是我应该如何添加和验证这样的字段?


编辑-1:我更进一步,发现 Marshmallow 中有一个 Dict 字段类型,所以到目前为止我有以下代码示例:

fields.List(fields.Dict(
keys=fields.String(validate=OneOf(('name', 'age'))),
values=fields.String(required=True)
))

现在出现新问题,我不能为字典中的字段设置不同的数据类型(nameage)。如果有人能阐明这一点,我会很高兴。

最佳答案

如果列表中的项目具有相同的形状,您可以在 fields.List 中使用嵌套字段,如下所示:

class PersonSchema(Schema):
name = fields.Str()
age = fields.Int()

class RootSchema(Schema):
people = fields.List(fields.Nested(PersonSchema))

关于python - 我应该如何在 Marshmallow Python 中添加一个包含字典列表的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56966172/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com