Mysql
 sql >> Base de données >  >> RDS >> Mysql

obtenir la valeur décimale brute de la requête mysqldb

Vous pouvez soit convertir un objet Decimal en chaîne :

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

Ou à un flottant :

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

Le convertir en flottant lui fera perdre toute sa précision, donc une valeur comme 20,24 deviendra 20,239999999999998.

De plus, le convertir en flottant lèvera une exception si la valeur est None . Pour éviter cela, vous pouvez utiliser une fonction d'assistance comme celle-ci :

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