Проблема с запросом SELECT в MySQL Connector: попытка преобразования в число с плавающей запятой для нескольких аргумент ⇐ Python
Проблема с запросом SELECT в MySQL Connector: попытка преобразования в число с плавающей запятой для нескольких аргумент
Я столкнулся с проблемой при выполнении запроса SELECT в Python (Flask) с использованием соединителя MySQL (из flask_mysqldb). В частности, когда я включаю более одного аргумента в оператор SELECT, начиная со второго аргумента, он пытается преобразовать значения в число с плавающей запятой. Когда я делаю тот же SELECT из MySQL CLI, все работает нормально.
Вот схема таблицы:
CREATE TABLE пользователей ( id INT NOT NULL AUTO_INCREMENT ПЕРВИЧНЫЙ КЛЮЧ, электронная почта VARCHAR(255) NOT NULL UNIQUE, hashed_password VARCHAR(255) НЕ НУЛЬ ); А вот фрагмент кода:
cur = mysql.connection.cursor() print('Подключено к MySQL') cur.execute("ВЫБЕРИТЕ идентификатор, адрес электронной почты ОТ пользователей;") # Вот здесь и возникает проблема рв = cur.fetchall() кур.закрыть() Сообщение об ошибке, которое я вижу на странице localhost:
ValueError: не удалось преобразовать строку в число с плавающей запятой: b'[email protected]'
Похоже, что значения, полученные из столбца электронной почты, представлены в виде байтовых строк (b'...'), что приводит к ошибке преобразования.
Как решить эту проблему и гарантировать, что запрос SELECT правильно извлекает и обрабатывает строковые значения из базы данных MySQL?
Я пробовал тестировать запросы через MySQL CLI, и они работают, но здесь они не работают, если имеется более одного оператора, а второй не является числом.
Я столкнулся с проблемой при выполнении запроса SELECT в Python (Flask) с использованием соединителя MySQL (из flask_mysqldb). В частности, когда я включаю более одного аргумента в оператор SELECT, начиная со второго аргумента, он пытается преобразовать значения в число с плавающей запятой. Когда я делаю тот же SELECT из MySQL CLI, все работает нормально.
Вот схема таблицы:
CREATE TABLE пользователей ( id INT NOT NULL AUTO_INCREMENT ПЕРВИЧНЫЙ КЛЮЧ, электронная почта VARCHAR(255) NOT NULL UNIQUE, hashed_password VARCHAR(255) НЕ НУЛЬ ); А вот фрагмент кода:
cur = mysql.connection.cursor() print('Подключено к MySQL') cur.execute("ВЫБЕРИТЕ идентификатор, адрес электронной почты ОТ пользователей;") # Вот здесь и возникает проблема рв = cur.fetchall() кур.закрыть() Сообщение об ошибке, которое я вижу на странице localhost:
ValueError: не удалось преобразовать строку в число с плавающей запятой: b'[email protected]'
Похоже, что значения, полученные из столбца электронной почты, представлены в виде байтовых строк (b'...'), что приводит к ошибке преобразования.
Как решить эту проблему и гарантировать, что запрос SELECT правильно извлекает и обрабатывает строковые значения из базы данных MySQL?
Я пробовал тестировать запросы через MySQL CLI, и они работают, но здесь они не работают, если имеется более одного оператора, а второй не является числом.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение