sql >> Base de Datos >  >> RDS >> Mysql

obtener el valor decimal sin procesar de la consulta mysqldb

Puede convertir un objeto Decimal en una cadena:

cursor = db.cursor()
cursor.execute("""select * from table""")
output = []
for row in cursor:
    output.append(str(row[4]))

O a un flotador:

cursor = db.cursor()
cursor.execute("""select * from table""")
output = []
for row in cursor:
    output.append(float(row[4]))

Convertirlo en un flotante hará que pierda toda su precisión, por lo que un valor como 20,24 se convertirá en 20,239999999999998.

Además, lanzarlo a un flotador generará una excepción si el valor es None . Para evitar eso, puede usar una función auxiliar como esta:

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])