我试图弄清楚某个用户是否拥有特定股票的股票,如果他没有,我想插入他刚刚购买了该股票到我的 SQL 表中,但是如果他已经拥有该股票我想更新他拥有该股票的股份数量。为了查明他是否拥有该股票的任何股份,我使用 SQL 提供的 count 命令。
count = db.execute("SELECT COUNT(shares) FROM user_stocks WHERE user_id = ? AND symbol = ?", user_id, symbol)
if count == 0:
db.execute("INSERT INTO user_stocks (user_id, symbol, shares) VALUES(?, ?, ?)", user_id, symbol, shares)
else:
count = count + shares
db.execute("UPDATE user_stocks SET shares = ? WHERE user_id = ? AND symbol = ?", count, user_id, symbol)
但是,当我尝试更新计数时出现错误,它显示: 文件“/workspaces/43335819/pset9/finance/app.py”,第 75 行,在 buy 中 数量 = 数量 + 股数 ~~~~~~^~~~~~~~ 类型错误:只能将列表(不是“int”)连接到列表
当我阅读有关 COUNT 的文档时,它说该命令返回一个整数,但似乎它返回一个列表。我该如何解决这个问题?
我尝试过做
count = int(db.execute("SELECT COUNT(shares) FROM user_stocks WHERE user_id = ? AND symbol = ?", user_id, symbol))
但这不起作用,因为要使 int() 工作,它需要是字符串或浮点数。
下面这行有什么问题?
count = count + shares
count
是一个整数shares
是一个列表您无法将整数连接到列表。
一个可能的解决方案
count = count + len(shares)
通过上面的行,您处理 2 个整数,因为
len(shares)
返回一个 int