Python загружает данные в MySQL: Ошибка атрибута: объект «кортеж» не имеет атрибута «кодировать»

#python

Вопрос:

Я знаю, что это обсуждалось пару раз, но следование предложениям все равно не решило мою проблему.
Я попытался воспроизвести учебник youtube по обновлению таблицы:

Код: Часть 1:

 cursor.execute("CREATE DATABASE testdab")
cursor.execute("CREATE TABLE users (name VARCHAR(255), email VARCHAR(255), age INTEGER(10), user_id INTEGER AUTO_INCREMENT PRIMARY KEY)")
 

Часть 2:

 insert_query = "INSERT INTO users (name, email, age) VALUES (%s, %s, %s)",
record1 = ("Peter", "peter@mail.com", 30)
cursor.execute(insert_query, record1)
 

Таблица успешно создана, но часть 2 выдает сообщение об ошибке: Ошибка атрибута: объект «кортеж» не имеет атрибута «кодировать»

У кого-нибудь есть идеи, что здесь происходит не так? Большое спасибо, Томас

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

1. Дополнительная запятая в конце строки создает кортеж.

2. Следуя каким советам? Какое видео на YouTube?

Ответ №1:

у вас проблема с синтаксисом в конце строки после изменения запроса
insert_query = "INSERT INTO users (name, email, age) VALUES (%s, %s, %s)",
Для
insert_query = "INSERT INTO users (name, email, age) VALUES (%s, %s, %s)"
эта запятая создает insert_query кортеж, и это вызывает проблему
, потому что вы должны указать cursor.execute() строку в первом аргументе и кортеж во втором аргументе

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

1. Привет, Аазерра, большое спасибо за вашу помощь и объяснение. Это работает!