首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从cursor.fetchone()中获取字典中的flask mysql SUM()小数

问从cursor.fetchone()中获取字典中的flask mysql SUM()小数
EN

Stack Overflow用户
提问于 2020-12-25 07:14:44
回答 2查看 119关注 0票数 0

我将我的flask-app连接到MySQL-Database,如下所示:

代码语言:javascript
复制
from flask_mysql_connector import MySQL
from flask_mysqldb import MySQL


# MySQL Connection
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'Prices'
app.config['MYSQL_PORT'] = 3306
app.config['MYSQL_DATABASE_SOCKET'] = ''
app.config['MYSQL_UNIX_SOCKET'] = ''
app.config['MYSQL_CONNECT_TIMEOUT'] = ''
app.config['MYSQL_READ_DEFAULT_FILE'] = ''
app.config['MYSQL_USE_UNICODE'] = ''
app.config['MYSQL_CHARSET'] = ''
app.config['MYSQL_SQL_MODE'] = ''
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'


mysql = MySQL()
mysql.init_app(app)

执行如下查询:

代码语言:javascript
复制
cursor.execute("SELECT SUM(total) AS sumy FROM tbl")
total = cursor.fetchone()
total = total["sumy"]

返回以下内容:

代码语言:javascript
复制
({'sumy': Decimal('123.4')})

我现在的问题是:

是否将每个连接器、

代码语言:javascript
复制
MySQL Connector/Python
PyMySQL
MySQLDB
mysqlclient
and the OurSQL

是否从SUM(列)查询返回小数(‘123.4’)值?我怎样才能以简单的方式摆脱这个小数特征呢?我知道有一些CAST()和float()建议。我喜欢保持简单,所以是不是缺少了一个fetchone()参数?或者一个像'raw‘这样的连接参数,就像Python/ MySQL (如果我必须更改的话,我必须重写代码……)

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-27 20:13:50

嗯,看起来很有趣,即使是浮点数的总和也被返回为Decimal(123.4)。所以我继续在MySQL中做所有的计算,并使用flask来显示内容。

票数 0
EN

Stack Overflow用户

发布于 2020-12-25 08:17:17

Decimal是表示固定十进制值的python方式。SQL返回小数可能是因为sumy是小数。它可能所有的实现都会以相同的方式处理这个问题。

让python应用程序将其作为Decimal处理可能是维护数据库的最佳方式,数据库负责检索,应用程序负责表示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65443949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档