【问题标题】:Issue storing user id's in a json file将用户 ID 存储在 json 文件中的问题
【发布时间】:2020-05-07 08:57:38
【问题描述】:

所以我要做的是存储用户 ID 并在他们执行命令时添加他们的分数。但我得到的问题是用户被记录了两次并且它没有添加分数。这是 json 文件中发生的情况:

{"272356126391238536": {"experience": 1}, "272356126391238536": {"experience": 1}}

这是我定义更新和添加的代码的一部分:

async def update(amount, user):
   if not user.id in amount:
       amount[user.id] = {}
       amount[user.id]['experience'] = 0

async def add(amount, user, exp):
amount[user.id]['experience'] += exp

这是更新分数的命令部分:

await update(buffer, ctx.message.author)
await add(buffer, ctx.message.author, 1)

当我将“.id”更改为“.name”时,它可以正常工作,但名称的问题是,如果用户更改了他的名字,他的旧分数将会丢失。

【问题讨论】:

    标签: python-3.x discord discord.py


    【解决方案1】:

    确保使用 ctx 变量,所以:

    async def update(ctx, amount):
       if not str(ctx.message.author.id) in amount:
           amount[str(ctx.message.author.id)] = {}
           amount[str(ctx.message.author.id)]['experience'] = 0
    
    async def add(amount, user : discord.Member, exp):
        amount[user.id]['experience'] += exp
    
    

    这应该可行。

    【讨论】:

    • 谢谢!没有使用确切的代码,但我只需要将 id 转换为字符串即可解决。
    猜你喜欢
    • 2020-05-02
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 2011-10-14
    • 2018-12-28
    相关资源
    最近更新 更多