Python 棉花糖 blob/字节字段

Posted

技术标签:

【中文标题】Python 棉花糖 blob/字节字段【英文标题】:Python marshmallow blob/bytes field 【发布时间】:2018-09-19 23:35:18 【问题描述】:

我一直在寻找有关如何使用Marshmallow 验证字典的键是否具有值(必需)并且该值的类型是bytes,但我没有找到任何可行的方法。

棉花糖参考文档中没有与bytes 数据类型匹配的“基本”字段类型。所以我认为它必须是一个自定义字段。

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

谢谢

【问题讨论】:

如果问题解决了,要么在下面发布解决方案,要么接受给出的答案 @cricket_007 我刚刚发布了答案,对不起。 【参考方案1】:

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

只需创建一个从fields.Field 扩展的新类并覆盖_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)
    // ...

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

【讨论】:

嗯,这对我很有帮助。谢谢。顺便说一句,我认为isinstance(value, bytes) 会比type(value) is not bytes 更好 浪费你的*时间 请添加对您使用的文档页面的引用。

以上是关于Python 棉花糖 blob/字节字段的主要内容,如果未能解决你的问题,请参考以下文章

[转帖] 棉花糖测试

检测棉花糖中的吐司

Android棉花糖请求权限?

棉花糖上的 SSLHandshakeException

清除棉花糖中所有应用程序的缓存?

棉花糖中的手电筒控制