gpt4 book ai didi

python - 为什么 python 中的数据库查询不返回整数值?

转载 作者:太空宇宙 更新时间:2023-11-04 00:09:04 25 4
gpt4 key购买 nike

为什么这样做:

cash = db.execute("SELECT cash FROM users WHERE id = :user_id", user_id = session["user_id"])

# Ensure user can afford the stock
if cash[0]["cash"] < share * quote["price"]:
return apology("Not enough money")

这不是:

cash = db.execute("SELECT cash FROM users WHERE id = :user_id", user_id = session["user_id"])

# Ensure user can afford the stock
if cash < share * quote["price"]:
return apology("Not enough money")

我想了解数据库查询在 Python 中是如何工作的。什么是“现金”变量存储?不就是用户的现金值(value)吗? (整数)

最佳答案

db.execute 返回矩阵/表结构。在这个特定示例中,该矩阵称为现金,它只有一列再次命名为现金,并且其中只有一个值。

因此,让我们稍微修改一下您的查询,以便更好地理解它。如果您的查询是:

result = db.execute("SELECT * FROM users WHERE id = :user_id", user_id = session["user_id"])

假设结果如下:

all columns

当你查询这个时:

result[0]["cash"]

它将返回 100。

如果您只选择 cash 而不是 *,您将只得到该表的一列(这就是您正在做的):

cash column only

同样,result[0]["cash"] 会给你 100。

如果我是你,我不会选择 *select cash 很好,因为它只获取它需要的东西。如果您想存储该现金值以供日后使用,请像现在一样调用数据库,然后创建一个变量 cashValue = result[0]["cash"] 并使用它。另外,不要将不同的对象命名为相同的名称,这会使您感到困惑。如果数据库表中有一个名为 cash 的列,请将您的输出命名为其他名称,例如 result。然后,如果您想获取其中的值,请再次调用其他名称,例如 cashValue

希望这能澄清事情。

关于python - 为什么 python 中的数据库查询不返回整数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53126234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com