from marshmallow import Schema, fields
class Item(Schema):
number = fields.Int(required=True)
other_number = fields.Int(required=True)
collection = Item.load([{'number': '3', 'other_number': '4'}, {'number': '', 'other_number': '3'}], many=True)
有没有办法我可以得到:
assert collection == [{'number': 3, other_number: 4}]
也就是说,序列化时要尽力而为吗?忽略验证错误,仅加载有效的架构。
我尝试使用嵌套字段,但由于验证错误而导致获取有效数据,但是如果一个字段有效,则会得到类似以下内容的信息:
class ItemCollection(Schema)
items = Nested(Item, many=True, required=True)
try:
collection = ItemCollection.load([{'number': 3, 'other_number': 4}, {'other_number': 3}])
except ValidationError as err:
collection = err.valid_data
我得到:
[{'number': 3, 'other_number': 4}, {'other_number': 3}]
谢谢 这不是我想要的,那就是我想加载一个集合,而忽略那些未通过验证的集合。
谢谢