jef*_*ind 15 python mysql mysql-python
我正在使用MySQLdb包在python中执行mysql查询.代码看起来像这样:
c=db.cursor()
c.execute("""select * from table""")
output = []
for row in c:
output.append(row[4])
Run Code Online (Sandbox Code Playgroud)
其中row[4]包含我想要存储在output列表中的十进制值.
问题是我得到的每一个值都是这样的:列表中Decimal('XX.XX')我想要的output只是XX.XX. 在脚本的末尾,我的output列表如下所示:
[Decimal('10.02'), Decimal('20.24'), ...]
Run Code Online (Sandbox Code Playgroud)
但我需要它来包含数字,如下所示:
[10.02, 20.24, ...]
Run Code Online (Sandbox Code Playgroud)
我怎么做?
谢谢!
Mak*_*cha 13
c=db.cursor()
c.execute("""select * from table""")
output = []
for row in c:
output.append(float(row[4]))
Run Code Online (Sandbox Code Playgroud)
用途float():
output.append(float(row[4]))
Run Code Online (Sandbox Code Playgroud)
但float()可能导致类似于:
In [184]: float(Decimal('10.02'))
Out[184]: 10.02
In [185]: float(Decimal('20.24'))
Out[185]: 20.239999999999998
Run Code Online (Sandbox Code Playgroud)
如果您尝试编写对列输出进行操作的通用代码,则上述解决方案将不起作用。在这种情况下,我们可以SELECT以列返回为 String 的方式编写我们的查询,我们只是得到我们想要的值。查询可以用以下方式构建,
SELECT
CAST(COL1 AS CHAR) AS COL1,
CAST(COL2 AS CHAR) AS COL2,
.
.
.
FROM TABLE;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12166 次 |
| 最近记录: |