Python mysql fetchall () возвращает дополнительные символы - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь получить значения из таблицы для использования в расчете. Код ниже

mycursor = mydb.cursor()

mycursor.execute("SELECT number FROM info")

rows = mycursor.fetchall()

print (rows)

Возвращает этот список

[(Decimal('30.00'),), (Decimal('66.00'),), (Decimal('72.00'),)]

Как получить числовое значение только в виде списка или кортежа, например

[30.00, 66.00, 72.00]

1 Ответ

0 голосов
/ 06 марта 2020

Исходный тип данных в mydb может быть десятичным объектом. Таким образом, вы можете преобразовать тип данных в запросе MySQL или в коде python.

1) Регистр в MySQL:

SELECT CAST(number AS DOUBLE) FROM info

, но этот код возвращает извлеченные строки как [(30.00,), (66.00,), (72.00,)] потому что кортежи представляют столбцы результата запроса.

2) Регистр в python коде:

converted_rows = list(map(lambda row:float(row[0]), rows))

Возвращается список [30.00, 66.00, 72.00].

...