Python 我得到了KeyError:';563690668808208423';当我';我正在尝试向用户添加exp

Python 我得到了KeyError:';563690668808208423';当我';我正在尝试向用户添加exp,python,json,discord,Python,Json,Discord,我收到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']) == &qu

我收到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('Вы отлично поработали')
我使用json文件作为数据库:

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

563690668808208423是我的ID

您只需将其更改为以下内容:

async def add_experience(users, user, exp):
    users[str(user.id)]['experience'] += exp

用户返回的id作为int(整数)返回,因此您必须先将其更改为字符串

是否可以在此处打印错误消息?添加到JSON文件后,您需要在JSON文件中再次写入体验
async def add_experience(users, user, exp):
    users[str(user.id)]['experience'] += exp