Python float()参数必须是字符串或数字,而不是';非类型';如何在db.session中检查和避免它们

Python float()参数必须是字符串或数字,而不是';非类型';如何在db.session中检查和避免它们,python,python-3.x,database,flask-sqlalchemy,Python,Python 3.x,Database,Flask Sqlalchemy,我试图在Pyhton中取消服务器端数据库操作。我的场景是我有一些可变的用户输入也验证一些值,然后我在我的数据库中查询结果数据并计算一些平均值。但当我查询并转换为float()的值时,此操作会产生以下错误: float()参数必须是字符串或数字,而不是“nonetype” 我的代码是: details_filter = db.and_(ProductDetail.product_code==product_code, Product

我试图在Pyhton中取消服务器端数据库操作。我的场景是我有一些可变的用户输入也验证一些值,然后我在我的数据库中查询结果数据并计算一些平均值。但当我查询并转换为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)
报告有时会得到非类型。这个错误有时会导致db表死锁。因为此操作打开了db会话,但无法关闭。如何防止这种情况