编程错误:(1064,…)用于第1行的正确语法(接近“))”

2024-09-27 07:32:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用AWS lambda查询RDS实例。我正在用python编写代码

我的插入查询是:

with conn.cursor() as cur:
 cur.execute("""insert into DocumentLanguagesInfo (documentId, version, language1, 
 language1Confidence, language2, language2Confidence, language3, language3Confidence, 
 otherLanguages) values(%s, %s, %s, %s, %s, %s, %s, %s, %s)""", (docId, version, lang1, 
 lang1Conf, lang2, lang2Conf, lang3, lang3Conf, otherLangs))

其中conn是成功建立的SQL server连接的变量

但是当我执行这个查询时,我在cloudwatch中得到一个错误:

[ERROR] ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1")
Traceback (most recent call last):
  File "/var/task/sqlConnection.py", line 100, in lambda_handler
    cur.execute("""insert into DocumentLanguagesInfo (documentId, version, language1, language1Confidence, language2, language2Confidence, language3, language3Confidence, otherLanguages) values(%s, %s, %s, %s, %s, %s, %s, %s, %s)""", (docId, version, lang1, lang1Conf, lang2, lang2Conf, lang3, lang3Conf, otherLangs))

我尝试用这种方式编写代码,但仍然会出现相同的错误:

with conn.cursor() as cur:
        sql_query = "insert into DocumentLanguagesInfo (documentId, version, language1, language1Confidence, language2, language2Confidence, language3, language3Confidence, otherLanguages) values(%s, %s, %s, %s, %s, %s, %s, %s, %s)"
        recordTuple = (docId, version, lang1, lang1Conf, lang2, lang2Conf, lang3, lang3Conf, otherLangs)

        cur.execute(sql_query, recordTuple)
        conn.commit()

我在这个问题上做错了什么


Tags: executeversionconninsertcurintolanguage1language2
1条回答
网友
1楼 · 发布于 2024-09-27 07:32:16

我认为问题可能在于{}是一个列表。也许用

recordTuple = (docId, version, lang1, lang1Conf, lang2, lang2Conf, lang3, lang3Conf, tuple(otherLangs)) 

这样会更好

相关问题 更多 >

    热门问题