как я могу не получить ошибку кортежа преобразования mysql?

#python #mysql #python-3.x #pyodbc

#python #mysql #python-3.x #pyodbc

Вопрос:

Я просто хочу обновить с помощью команды UPDATE. Это выдает ошибку, где я допускаю ошибки?

 for checkNewAbility in list(newAbilities1):
    if not checkNewAbility in list(oldAbility[1]):
        my_cursor.execute(
           "UPDATE mydb.skill SET skill_name='%s' WHERE Person_person_id='%s' 
                AND skill_id='%d';",(checkNewAbility, url[0], oldAbility[0]))
        realdb.commit()
 

Ошибка:

«Ошибка обработки параметров формата; %s» % err) mysql.connector.errors.Ошибка программирования: ошибка обработки format-parameters; Python ‘tuple’ не может быть преобразован в тип MySQL

В моих списках есть:

oldAbility= [(43, ‘PHP’), (44, ‘HTML’), (45, ‘CSS’)]

newAbilities1= [‘Java’, ‘Python’, ‘JavaScript’]

Я просто хочу заменить старые возможности новыми возможностями 1 в соответствии с идентификатором.

Комментарии:

1. 2%d’ отсутствует цитата?

2. Салмон, я написал это неправильно, когда писал здесь. Извините.

3. все еще неверный %d’ ?

4. Я переписываю, но все равно принимаю эту ошибку.

5. Вы отредактировали свой вопрос — сохраняется ли ошибка, если вы используете именно этот код?

Ответ №1:

Если вы скопировали и вставили свой код правильно, то после выполнения отсутствуют двойные кавычки » «(. Я предполагаю, что вы используете pyodbc.

 for checkNewAbility in list(newAbilities1):
    if not checkNewAbility in list(oldAbility[1]):
        my_cursor.execute("UPDATE mydb.skill SET skill_name='?' WHERE Person_person_id='?' AND skill_id='?'", (checkNewAbility, url[0], oldAbility[0]))
        realdb.commit()
 

Комментарии:

1. Я переписываю, но та же ошибка. mysql.connector.errors. Ошибка программирования: ошибка обработки format-parameters; Python ‘tuple’ не может быть преобразован в тип MySQL

2. Затем одна из ваших переменных, которые вы используете (checkNewAbility, url[0], oldAbility[0]), имеет неправильный тип. Они должны быть строками или целыми числами. Вы должны отладить свою программу (например, вывести их на консоль) и проверить содержимое переменных.

3. Я нашел свою ошибку. oldAbility [1] мечтал получить языки программирования. Но я видел, как ты брал их все. Я хотел получить языки программирования, а не только числа.