字段类型为int时传递str时没有错误?

问题描述 投票:0回答:1

我正在验证字典中的数据。我指定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)
python marshmallow
1个回答
0
投票

我猜想marshmallow.fields在某个时候将年龄隐式地解析为一个整数,并且不会抛出异常,因为“ 12”可以很好地转换为12。运行代码时,这正是发生的情况,[C0 ]是“ Ken”,name是12。如果我将“ 12”更改为“ 12a”,则它会返回一个异常,如您所愿。

© www.soinside.com 2019 - 2024. All rights reserved.