遍历字典中的对象以使用棉花糖进行序列化和打印

时间:2019-05-13 14:00:24

标签: python schema marshmallow

在尝试将对象作为dict中的值进行迭代并将其传递到schema.dump(dev_obj)进行打印时,收到以下错误。

TypeError:dump()缺少1个必需的位置参数:'obj'

成功能够转储和打印单个对象实例,而不是在字典中,但是不能重复对多个对象进行迭代的成功。

...     #在下面,单个实例可以正常工作

test = MsnDevice()

schema = MsnDeviceSchema()

result = schema.dump(test)

pprint(result)

......

......     #,但是,当遍历字典时,设备对象是字典中的一个值,我得到了上面的错误     #我已验证对象确实已创建并存储在值中

schema = msn.MsnDeviceSchema

for device, dev_obj in msn_dict.items():

    device_json_string = schema.dump(dev_obj)

    pprint(device_json_string)

........

预期结果是,我将能够pprint每个对象。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法,简而言之就是一个错字。

在代码的dict迭代部分中定义架构时,我没有在语句中包含“()”:

.....

 # Incorrect
 schema = msn.MsnDeviceSchema

 # Corrected
 schema = msn.MsnDeviceSchema()