我是python编程的新手,遇到了一个问题。我正在查询一个mysql数据库,该数据库通过将响应除以另一个数字来返回一个我想使用的值。我有以下代码:

def sum_perchange_by_sector(dates, num):
   for row, in dates:
   cur = con.cursor()
   cur.execute("select sum(dbdev.perchange) from dbdev inner join symbol

    on dbdev.symbol_id = symbol.id where symbol.sector =
    'Industrials' and dbdev.price_date = %s;",(row))

    sumer=cur.fetchone()[0]
    print(type(sumer))
    print(type(num))
    av=sumer/num
    print(av)


当我运行代码时,我得到以下输出:

<class 'NoneType'>
<class 'int'>
av=sumer/num
TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'


如果我注释掉这些行:

av=sumer/num
print(av)


输出显示为

<class 'float'>
<class 'int'>


我不了解这种类型的变化方式,为什么该部门不起作用?

最佳答案

这些行确实没有什么影响力。每次运行“ sumer”的可能性都更大,“ NoneType”可能对应于没有从查询返回的结果。

10-06 13:53