【问题标题】:Post JSON to database with Python SQLAlchemy使用 Python SQLAlchemy 将 JSON 发布到数据库
【发布时间】:2020-01-10 08:41:31
【问题描述】:

我正在尝试将从客户端发布的 JSON 数据添加到我的数据库中,我尝试过的代码是:

@app.route('/postjson', methods=['POST'])
def postEventViewer():
    print(request.is_json)

    content = request.get_json()
    items = []
    for item in content:
        items.append(item['Values'])
        items.append(item['Count'])
        items.append(item['Group'])
        items.append(item['Name'])

        values = item['Values']
        count = item['Count']
        group = item['Group']
        name = item['Name']

        engine.execute('INSERT INTO EventViewer (Values, Count, Group, Name) VALUES (:value, :count, :group, :name)', value=values, count=count, group=group, name=name)

这给了我以下错误:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) near "Values": syntax error

但是在等效数据库中使用具有较少参数的相同代码可以正常工作,并且可以按预期添加到数据库中:

engine.execute('INSERT INTO person (name, balance) VALUES (:name, :balance)', name=name, balance=count)

我在这里做错了什么?谢谢!

【问题讨论】:

    标签: python sql sqlite sqlalchemy flask-sqlalchemy


    【解决方案1】:

    此错误是因为Valuessql 中的保留关键字。您需要将其用双引号括起来以将其视为列名。

    编辑

    您还有一个关键字用作列名,即Group。您还需要将其用双引号括起来。

    试试下面的查询。

    @app.route('/postjson', methods=['POST'])
    def postEventViewer():
        print(request.is_json)
    
        content = request.get_json()
        items = []
        for item in content:
            items.append(item['Values'])
            items.append(item['Count'])
            items.append(item['Group'])
            items.append(item['Name'])
    
            values = item['Values']
            count = item['Count']
            group = item['Group']
            name = item['Name']
    
            engine.execute('INSERT INTO EventViewer ("Values", Count, "Group", Name) VALUES (:value, :count, :group, :name)', value=values, count=count, group=group, name=name)
    

    【讨论】:

      猜你喜欢
      • 2021-10-03
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 2015-09-15
      • 1970-01-01
      • 2015-08-04
      • 2021-12-04
      • 2013-09-09
      相关资源
      最近更新 更多