有没有工具将JSON对象转换为SQLAlchemy模型?

时间:2017-07-02 10:39:31

标签: sqlalchemy

我正在寻找一种将JSON对象列表转换为近似SQLAlchemy模型的方法。有没有实施?

1 个答案:

答案 0 :(得分:1)

这是我在我的一个项目中所做的,它将json输入从http请求动态转换为sqlalchemy模型:

if request.method == "POST" or request.method == "PUT":
    data = request.get_json(force=True)
    print("data:", data)
    try:
        TableClass = models.get_class_by_tablename(table_name)
        if TableClass == None: raise Exception("Table not found: %s" % table_name)
        if request.method == "POST": #insert data
            object = TableClass(**data)
            dbsession.add(object)
            dbsession.commit()
        else: #update data
            object = dbsession.query(TableClass).filter_by(**{"id":id}).first()
            if object == None: raise Exception("No data found.")
            #object.update(**data)
            for key in data.keys():
                setattr(object, key, data[key])
            #dbsession.add(object)
            dbsession.commit()
        return jsonify({
            "status": "success",
            "id": object.id,
            })
    except Exception as e:
        return jsonify({
            "status": "error",
            "error": str(e),
            })

data是从json输入转换为通常的python字典的变量。然后将**data作为参数传递给sqlalchemy表类的实例创建。