首页 > 解决方案 > 当成员不在 JSON 文件中时,Discord.py 机器人无法发送消息

问题描述

@bot.command()
async def coincount(ctx,*, member: discord.Member = None):
    member = ctx.author if not member else member
    member_id = str(member.id)
    with open('users.json', 'r') as f:
        users = json.load(f)

        coins = users[member_id]['coins']
        if member_id in users:
            if coins > 1:
                await ctx.send(f'{member.mention} has {coins} coins.')
            if coins == 1:
                await ctx.send(f'{member.mention} has {coins} coin.')
        else:
            await ctx.send(f'{member.mention} has no coins.')

没有追溯。如果成员在文件中,则机器人会发送适当的消息,但如果不在文件中,则不会执行任何操作。

标签: pythonpython-3.xdiscorddiscord.py

解决方案


如果成员 ID 不在您的 JSON 文件中,coins = users[member_id]['coins']则将引发KeyError.
您应该将其移动到 if 语句中。

由于. _ _on_command_error


推荐阅读