猿问

当我尝试向用户添加 exp 时,出现 KeyError: '563690668808208423'

我收到 KeyError: '563690668808208423',我正在尝试在用户使用命令时向用户添加 exp


@bot.command(pass_context=True)

async def work(ctx):

    with open('data.json','r+', encoding = 'utf-8') as f:

        kingdom = json.load(f)


    if str(kingdom[str(ctx.author.id)]['job']) == "Cleaner":

        await add_experience(kingdom, ctx.author ,10)

        await ctx.send('Вы отлично поработали')

async def add_experience(users, user, exp):

    users[user.id]['experience'] += exp

我使用 json 文件作为数据库:


{"563690668808208423": {"experience": 0, "level": 1, "job": "Cleaner"},

"517371726720532511": {"experience": 0, "level": 1, "job": "Cleaner"}}

563690668808208423是我的ID


慕的地10843
浏览 70回答 1
1回答

长风秋雁

您应该将其更改为以下内容:async def add_experience(users, user, exp):     users[str(user.id)]['experience'] += exp从用户返回的 id 即用户 id以 int(整数)形式返回,因此您必须先将其更改为字符串
随时随地看视频慕课网APP

相关分类

Python
我要回答