Możesz przekonwertować obiekt Decimal na ciąg:
cursor = db.cursor()
cursor.execute("""select * from table""")
output = []
for row in cursor:
output.append(str(row[4]))
Lub do pływaka:
cursor = db.cursor()
cursor.execute("""select * from table""")
output = []
for row in cursor:
output.append(float(row[4]))
Konwersja na zmiennoprzecinkową spowoduje utratę pełnej precyzji, więc wartość taka jak 20.24 stanie się 20.2399999999999998.
Ponadto rzutowanie go na float spowoduje zgłoszenie wyjątku, jeśli wartość to None
. Aby tego uniknąć, możesz użyć funkcji pomocniczej takiej jak ta:
def convert_mysql_decimal_to_float(decimal_object):
if (decimal_object == None):
return None
else:
return float(decimal_object)
cell_value = convert_mysql_decimal_to_float(row[4])