Python 棉花糖 blob/bytes 字段

Python marshmallow blob/bytes field

我一直在搜索如何使用 Marshmallow 验证字典的键是否具有值(必需)并且该值的类型是 bytes,但我没有找到任何东西可以的。

Marshmallow 参考文档中没有 "basic" 字段类型与 bytes 数据类型匹配。所以我假设它必须是一个自定义字段。

有人遇到过这个问题吗?有什么线索可以解决吗?

谢谢

好吧...解决方案非常简单,只需阅读正确的文档页面,我就知道了如何解决我的问题。

只需创建一个从 fields.Field 扩展的新 class 并覆盖 _validate 方法,如下所示:

class BytesField(fields.Field):
    def _validate(self, value):
        if not isinstance(value, bytes):
            raise ValidationError('Invalid input type.')

        if value is None or value == b'':
            raise ValidationError('Invalid value')

这是棉花糖架构:

class MySchema(Schema):
    // ...
    field = BytesField(required=True)
    // ...

就是这样。抱歉浪费您的时间。