我正在验证字典中的数据。我指定age字段为int类型,但实际上,我传入的年龄为str类型。为什么没有错误?
from marshmallow import Schema, fields
class UserSchema(Schema):
name = fields.Str()
age = fields.Int()
user_data = {
"name": "Ken",
"age": "12"
}
try:
UserSchema().load(user_data)
except Exception as e:
print(e)
我猜想marshmallow.fields在某个时候将年龄隐式地解析为一个整数,并且不会抛出异常,因为“ 12”可以很好地转换为12。运行代码时,这正是发生的情况,[C0 ]是“ Ken”,name
是12。如果我将“ 12”更改为“ 12a”,则它会返回一个异常,如您所愿。