В sql.executemany(... синтаксическая ошибка рядом с '('
Я пытаюсь выполнить следующий код в Python, но это приводит к syntax error near '('
ошибка для executemany(..)
, Когда я удаляю имена из sql
и просто напиши %s
это также приводит к ошибке, что there are more placeholders thant the variables
Кто-нибудь знает, как я могу это исправить?
upInfo ={"aa": "aaa","bb": "bbb","cc": "ccc"}
sql = 'UPDATE table SET a= %(aa)s WHERE b= %(bb)s and c= %(cc)s'
con = pymssql.connect(...)
con.autocommit(True)
cur = con.cursor()
cur.executemany(sql, upInfo)
1 ответ
Решение
Так как это executemany()
, это должен быть список словарей:
upInfo = [{"aa": "aaa", "bb": "bbb", "cc": "ccc"}]
Или используйте обычный execute()
:
cur.execute(sql, upInfo)