在尝试将对象作为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每个对象。
答案 0 :(得分:0)
我找到了解决这个问题的方法,简而言之就是一个错字。
在代码的dict迭代部分中定义架构时,我没有在语句中包含“()”:
.....
# Incorrect
schema = msn.MsnDeviceSchema
# Corrected
schema = msn.MsnDeviceSchema()