首页 > 解决方案 > 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)

报告有时会得到无类型。这个错误有时会让我的数据库表陷入僵局。因为这个操作打开了数据库会话并且无法关闭。怎么能防止呢?

标签: pythonpython-3.xdatabaseflask-sqlalchemy

解决方案


推荐阅读