marshmallow架构加载仅返回值

时间:2018-04-18 14:18:30

标签: python flask deserialization marshmallow

当我使用下面的

 data , error = schema.load( json_data )

数据对象只包含值而非键,但json_data是有效的dict。 如果我只是使用

MyModel = _mymodel(**json_data)

它有效。但是如果我在我的架构中使用下面

@post_load
def create_model(self, data):    
  return MyModel(**data)

我收到错误

  

AttributeError:'MyModel'对象没有属性'get'

任何人都有任何想法?为什么“数据”只包含值而不返回字典,如上所述?

由于

1 个答案:

答案 0 :(得分:0)

根据文件here,有两种方法彼此相似。

  1. load(数据,很多=无,部分=无)
      

    将数据结构反序列化为此Schema的字段和make_object()定义的对象。

  2. 另一个是

    1. loads(json_data,many = None,* args,** kwargs)
        

      与load()相同,只是它将JSON字符串作为输入。

    2. 如果您有json数据,则需要使用loads()而不是load()