В 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)
Другие вопросы по тегам