【发布时间】:2021-11-24 11:02:27
【问题描述】:
Python Flask API 和 Marshmallow 模式验证的新用户。 在这里快速提问,可能是我自己误解了。
得到一个 Python 对象(类),它在数组中包含变量和其他对象,例如:
class NestedObj2(Schema):
field_a = fields.String(required=True, validate=validate.Length(max=4))
class Meta:
fields = (['field_a'])
class NestedObj1(Schema):
field_b = fields.String(required=True, validate=validate.Length(max=10))
field_c = fields.Integer(required=True)
field_d = fields.Nested(NestedObj2(), required=True, many=True)
class Meta:
fields = ('field_b', 'field_c', 'field_d')
class RequestObject(Schema):
field_d = fields.String(required=True, validate=validate.Length(max=10)
field_e = fields.Number(required=True)
field_f = fields.Boolean(required=True)
field_g = fields.Nested(NestedObj1(), required=True, many=True)
class Meta:
fields = ('field_d', 'field_e', 'field_f', 'field_g')
我想使用以下命令验证 JSON 有效负载(例如由 Postman 发送):
RequestObject().validate(request.get_json())
我正在其他没有数组的简单 API 上执行此验证方法,但在这里,Marshmallow 给了我错误
{
"field_g": {
"_schema": [
"Invalid input type."
]
}
}
要验证的负载:
{
"field_d": "my_string",
"field_e": "100.0",
"field_f": True,
"field_g": [
{
"field_b": "2nd_str",
"field_c": "200.0",
"field_d": [
{
"field_a": "3rds"
}
]
}
]
}
不知道我做错了什么......
如果有人有解释:)
亲切的问候
【问题讨论】:
标签: python json marshmallow