在棉花糖中加载项目集合时,忽略验证错误?

时间:2018-08-15 19:17:40

标签: python marshmallow

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}]

谢谢 这不是我想要的,那就是我想加载一个集合,而忽略那些未通过验证的集合。

谢谢

0 个答案:

没有答案