我想从mysql读取一个列,乘以一个因子并写入mysql
cursor = db.cursor()
query = ('SELECT GDP FROM selectedairport')
cursor.execute(query)
gdp_list = []
for GDP in cursor:
gdp_list.append(GDP)
weight = 0.5
num = gdp_list * weight
cursor.execute("UPDATE `selectedairport` SET `selectedairport`.`GDP`=num")
然而,这会产生错误:
TypeError: can't multiply sequence by non-int of type 'float'
我找到了gdp_list
[(50,),
(60,),
(80,),
(40,)]
可能是什么问题?
答案 0 :(得分:0)
如果你想通过将一个数字列表乘以一个因子来创建一个列表,你必须单独乘以每一个,例如:
num = [g * weight for g in gdp_list]
但坦率地说,没有理由这样做,甚至没有理由查询apriori表。您可以使用update
语句将列直接乘以因子:
cursor.execute("UPDATE `selectedairport` SET `selectedairport`.`GDP`= `GDP` * 0.5)