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

问题描述

我目前正在使用python数据库编写一个rpg游戏,该游戏使用MysqL数据库存储玩家信息。但是,我遇到了一个问题。

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

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

我正在尝试仅选择金额来选择金额。我现在的选择查询

SELECT money FROM playerinfo WHERE id = 1

用于收集选择信息的完整代码/功能

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

基本上,我要选择的只是玩家行中的INT / DATA(由唯一的用户ID标识)。我怎么做?我唯一的解决方案是用其他字符替换字符,但是我真的不想这样做,因为它带来了极大的不便和混乱。还有另一种重新格式化/选择数据的方法吗?

解决方法

似乎获取一行可以为您提供所选列及其值的字典,这对我来说似乎是正确的方法。您只需使用要检索的列访问字典:

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

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

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

我不建议使用最后一种方法,因为它在很大程度上取决于查询的当前状态,如果更改查询,则可能必须更改。