Ish*_*are 8 casting sqlalchemy sqldatatypes flask-sqlalchemy
我有以下模型:
172 class ReportRecord(db.Model):
173 __tablename__ = 'tb_report_record' 174 175 id = db.Column(Integer, primary_key=True)
176 report_id = db.Column(ForeignKey('tb_rua_report.id'), index=True)
177 source_ip = db.Column(String(100, 'utf8_bin'))
178 count = db.Column(Integer)
179 disposition = db.Column(String(10, 'utf8_bin'))
180 header_from = db.Column(String(100, 'utf8_bin'))
181 spf_domain = db.Column(String(100, 'utf8_bin'))
182 spf_result = db.Column(String(10, 'utf8_bin'))
183 dkim_domain = db.Column(String(100, 'utf8_bin'))
184 dkim_result = db.Column(String(10, 'utf8_bin'))
185 isActive = db.Column(Integer, nullable=False, server_default=text("'1'")) 186 created_by = db.Column(String(100), nullable=False, server_default=text("'System'"))
187 created_dt = db.Column(DateTime, nullable=False)
188 last_modified_by = db.Column(String(100), nullable=False, server_default=text("'System'"))
189 last_modified_dt = db.Column(DateTime, server_default=text("CURRENT_TIMESTAMP"))
190
191 report = db.relationship('RuaReport', backref=db.backref("record"))
Run Code Online (Sandbox Code Playgroud)
当我发出以下查询时 flasksqlalchemy
ReportRecord.query.filter(or_(ReportRecord.spf_result=="pass", ReportRecord.dkim_result=="pass")).with_entities(func.sum(ReportRecord.count).label('total_passed')).all()
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
[(Decimal('930'),)]
现在我得到的值是正确的,但我不能jsonify直接得到它。做 aint(Decimal('930'))确实给了我想要的结果,但是将这些数据转换为正确格式的默认方法是什么?
这对我有用:将其包含在您的导入中:
from sqlalchemy import func
Run Code Online (Sandbox Code Playgroud)
然后:
total_passed = db.session.query(func.sum(ReportRecord.count)).scalar()
Run Code Online (Sandbox Code Playgroud)
这将返回930而不是[(Decimal('930'),)]
阅读更多关于.scalar()
查询时转换小数怎么样?
尝试int(func.sum(ReportRecord.count).label('total_passed'))
尝试强制您的数据库将值转换为整数应该可以解决您的问题
我无法检查,但有一个强制转换函数也可能有用
from sqlalchemy.sql.expression import cast
cast(func.sum(ReportRecord.count).label('total_passed'),sqlalchemy.Integer)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |