Python 从mysqldb查询中获取原始十进制值

Python 从mysqldb查询中获取原始十进制值,python,mysql,mysql-python,Python,Mysql,Mysql Python,我正在使用MySQLdb包在python中执行一个mysql查询。代码如下所示: c=db.cursor() c.execute("""select * from table""") output = [] for row in c: output.append(row[4]) [Decimal('10.02'), Decimal('20.24'), ...] [10.02, 20.24, ...] 其中,行[4]包含一个我要存储在输出列表中的十进制值 问题是我得到的每个值都是这样

我正在使用MySQLdb包在python中执行一个mysql查询。代码如下所示:

c=db.cursor()
c.execute("""select * from table""")
output = []
for row in c:
    output.append(row[4])
[Decimal('10.02'), Decimal('20.24'), ...]
[10.02, 20.24, ...]
其中,
行[4]
包含一个我要存储在
输出
列表中的十进制值

问题是我得到的每个值都是这样的:
Decimal('XX.XX')
其中我想要的
输出
列表中的所有值都是XX.XX。在脚本末尾,我的
输出
列表如下所示:

c=db.cursor()
c.execute("""select * from table""")
output = []
for row in c:
    output.append(row[4])
[Decimal('10.02'), Decimal('20.24'), ...]
[10.02, 20.24, ...]
但我需要它只包含数字,就像这样:

c=db.cursor()
c.execute("""select * from table""")
output = []
for row in c:
    output.append(row[4])
[Decimal('10.02'), Decimal('20.24'), ...]
[10.02, 20.24, ...]
我该怎么做

谢谢

使用
float()

但是
float()
会导致如下结果:

In [184]: float(Decimal('10.02'))
Out[184]: 10.02

In [185]: float(Decimal('20.24'))
Out[185]: 20.239999999999998

如果您试图编写对列输出进行操作的通用代码,则上述解决方案将无法解决。在这种情况下,我们可以编写
SELECT
查询,使中的列作为字符串返回,我们只需要得到所需的值。 查询可以用下面的方式框起来

SELECT 
 CAST(COL1 AS CHAR) AS COL1,
 CAST(COL2 AS CHAR) AS COL2,
 .
 .
 .
FROM TABLE;

)()

这点很小,但您需要缩进最后一行,以便将其与代码段的其余格式一起包含。我认为“if type(data)is Decimal:”不正确。python中没有称为Decimal的数据类型。你是怎么执行的?好的,我们必须从小数中导入小数。我们可以很容易地将十进制('XX.XX')转换为XX.XX。但是为什么我们把小数点放在第一位呢。理想情况下,它应该在查询right之后返回一个整数或float。我们是否有任何文档链接来解释获取小数点@马克西姆·波尔什查