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)
// ...
就是这样。抱歉浪费您的时间。
我一直在搜索如何使用 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)
// ...
就是这样。抱歉浪费您的时间。