Python棉花糖AttributeError:“列表”对象没有属性“获取”

时间:2020-11-09 16:49:52

标签: python-3.x list marshmallow flask-marshmallow

我有这个模式

从棉花糖导入验证,ValidationError 从marshmallow_jsonapi导入字段 从marshmallow_jsonapi.flask导入关系,模式

class UserSchema(Schema):
    first_name = fields.Str(required=True])
    last_name = fields.Str(required=True)
    title = fields.Str(required=True)

    class Meta:
       type_ = 'users'
       self_view = "blog_view.users_detail"
       self_view_kwargs = {"user_id": "<id>", "_external": True}
       self_view_many = "blog_view.users_list"

    blog= Relationship(
        many=False,
        include_data=True,
        type_="blogs",
        include_resource_linkage=True,
        schema="BlogSchema"
        )

我想加载此数据(来自UI)以进行验证:

bulk_data = [
              { 'type': 'users', 
                'relationships': {'blog': {'data': {'type': 'blogs', 'id': blog_id}}},
                 {'first_name': 'Billy', 'last_name': 'Butcher', 'title': 'Supe Hunter'} 
              },
              { 'type': 'users', 
                'relationships': {'blog': {'data': {'type': 'blogs', 'id': blog_id}}},
                 {'first_name': 'Home', 'last_name': 'Lander', 'title': 'Leader'} 
              },
              { 'type': 'users', 
                'relationships': {'blog': {'data': {'type': 'blogs', 'id': blog_id}}},
                 {'first_name': 'Black', 'last_name': 'Noir', 'title': 'Super Ninja'} 
              }
]

为了验证,我这样做了:

data = UserSchema(many=True).load(input_data)

我收到一个错误消息,

AttributeError:“列表”对象没有属性“获取”

这很明显,因为我正在传递列表。当我通过上述列表中的单个字典时,验证工作正常,但我想传递大量数据并立即执行验证,如棉花糖文档:https://marshmallow.readthedocs.io/en/stable/quickstart.html#validation

何时

many = True

,load方法需要一个集合类型,例如list,tuple,queryset等。

关于如何验证棉花糖中数据列表的任何建议?棉花糖的版本是:

marshmallow==2.18.0
marshmallow-jsonapi==0.23.1

谢谢!

0 个答案:

没有答案