使用SqlAlchemy和Marshmallow将嵌套对象解除JSON字符串的错误

时间:2017-03-29 14:37:06

标签: python json sqlalchemy marshmallow

我尝试使用Flask,SQLAlchemy和Marshmallow在Python 3.4中构建REST API应用程序。

在我的模型中,我有一个User类,与MailAddress类有一对多的关系。

如果我运行GET请求,我设法从数据库中读取数据,并且数据正确地作为JSON字符串返回。

相反,如果我使用某个POST的{​​{1}}对象的JSON序列化运行User请求,则会收到此错误:

MailAddresses

我尝试在我的模型类中添加 File "X:\test\...\site-packages\sqlalchemy\orm\collections.py", line 785, in bulk_replace constants = existing_idset.intersection(values or ()) File "X:\test\...\site-packages\sqlalchemy\util\_collections.py", line 612, in intersection result._members.update(self._working_set(members).intersection(other)) TypeError: unhashable type: 'dict' 函数(如sqlalchemy: TypeError: unhashable type creating instance, sqlalchemy所示),但这并没有帮助。

以下是一个显示此问题的完整代码示例:

__hash__

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:1)

使用load代替make_instance

@app.route('/api/v0/user', methods=['POST'])
def user_create():
    new_instance, errors = user_schema.load(request.json)
    db.session.add(new_instance)
    db.session.commit()
    return user_schema.jsonify(new_instance), 201