python - float() 参数必须是字符串或数字而不是 'nonetype' 如何在 db.session 中检查和避免它们
问题描述
我尝试在 Pyhton 中进行 Flask 服务器端 Db 操作。我的场景是我有一些可变的用户输入也验证了一些值,然后我在我的数据库中查询,结果数据计算了一些平均值。但是当我查询然后转换为float()的值时,这个动作给了我错误:float()参数必须是字符串或数字而不是'nonetype'
我的代码是:
details_filter = db.and_(ProductDetail.product_code==product_code,
ProductDetail.machine_id==machine_id,
ProductDetail.mps_id==validation['slip_id'],
ProductDetail.validated_by == None)
reported = ProductDetail.query.with_entities(db.func.sum(ProductDetail.amount2).label('total')). \
filter(details_filter).\
group_by(ProductDetail.product_code, ProductDetail.machine_id).scalar()
validation_ratio = validation['qty'] / float(reported)
报告有时会得到无类型。这个错误有时会让我的数据库表陷入僵局。因为这个操作打开了数据库会话并且无法关闭。怎么能防止呢?
解决方案
推荐阅读
- markdown - Github markdown - 不能通过 inline-css 和 class 更改任何样式
- spring-boot - 检查天气处理器是否在骆驼路由器中设置任何交换消息
- react-native - Expo Client 不保存更改
- python - 创建适用于 3D 数组中矢量的遮罩
- javascript - Facebook分享不起作用vue js中动态创建的页面
- angular - 从内部使用初始值更新输入的 ngmodel 变量 - 仅 HTML 解决方案?
- python-3.x - 通过 Anaconda 导入 PyMC3 时出现 Statfunc 错误
- excel - 引用另一个工作表运行时错误“1004”的用户表单:
- bash - 与 teamcity 中的动态构建配置 ID 共享参数
- javascript - 找不到 CSS 和 JS 的 Vue dist 路径