如何仅获取由 MySQL 中唯一用户 ID 标识的列的值?请参阅问题以获得更详细的解释

How do I get only the value of a column identified by a unique userid in MySQL? pls refer to Question for more detailed explanation

我目前正在 python 中编写一个角色扮演游戏,它使用 mysql 数据库来存储玩家信息。但是,我遇到了一个问题。

如何设置数据库的示例代码:

playerinfo Table
userID | money | xp |
  1    | 200   | 20 |
  2    | 100   | 10 |

我正在尝试 select 仅具有价值的金额。我现在的 select 查询是

SELECT money FROM playerinfo WHERE id = 1

用于收集 select 信息的完整 code/function 是

def get_money_stats(user_id):
    global monresult
    remove_characters = ["{", "}", "'"]
    try:
        with connection.cursor() as cursor:
            monsql = "SELECT money FROM players WHERE userid = %s"
            value = user_id
            cursor.execute(monsql, value)
            monresult = str(cursor.fetchone())
    except Exception as e:
        print(f"An error Occurred>  {e}")

当前输出:

{'money': 200}

期望输出:

200

基本上,我只想 select 是玩家行中的 INT/DATA(由唯一用户 ID 标识)。我怎么做?我唯一的解决办法是用其他东西替换角色,但我真的不想这样做,因为它非常不方便和混乱。还有其他方法可以 reformat/select 数据吗?

似乎获取一行可以为您提供所选列及其值的字典,这对我来说似乎是正确的方法。您应该简单地访问包含要检索的列的字典:

monresult = cursor.fetchone()['money']

如果您不想再次指定列(您应该指定),您可以将字典的值作为列表获取并检索第一个:

monresult = list(cursor.fetchone().values())[0]

我不推荐最后一种方法,因为它在很大程度上取决于查询的当前状态,如果查询发生变化,它可能必须改变。