我是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”可能对应于没有从查询返回的结果。