Обновление pymysql не работает

Мне нужно сделать обновление, поэтому я сделал это, но у меня возникла проблема с этим кодом.

def runUpdate(query, aux):

#Establecemos la conexion con la base de datos
connection = pymysql.connect(host='localhost', user='root', password='root', db='influencers', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
try:
    with connection.cursor() as cursor:
        #Ejecutar query
        cursor.execute(query, aux)
        result = cursor.fetchall()
        #Guardar cambios conexion
        connection.commit()
finally:
    connection.close()

Вроде нормально, но когда я сделал это:

runUpdate("""UPDATE Influencers SET tweets = '%s' WHERE usuario = '%s'""", (numTweets, user))

Это выдает мне ошибку здесь:

cursor.execute(query, aux)

Это часть консольного текста: (...) return escape_str(value, mapping) File "/Library/Python/2.7/site-packages/pymysql/converters.py", line 71, in escape_str return "'%s'" % escape_string(value, mapping) File "/Library/Python/2.7/site-packages/pymysql/converters.py", line 68, in escape_string lambda match: ESCAPE_MAP.get(match.group(0)), value),)) TypeError: expected string or buffer

Я думаю, что мой синтаксис неправильный, но я не понимаю, почему. Я учусь программировать на Python, поэтому, пожалуйста, будьте хороши:)

1 ответ

Решение

Пожалуйста, распечатайте ваш numTweets и пользователя, проверьте, является ли он строкой или нет.

Если ваши параметры и пользователь относятся к типу списка, вам следует использовать

cursor.executemany(operation, seq_of_params)

проверьте документ https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html

Другие вопросы по тегам