警告命令 discord.py KeyError 的问题

时间:2021-04-19 21:46:04

标签: python discord discord.py

所以我在使用 warn 命令时遇到了一些问题,我认为问题是 KeyError 但我不知道如何解决。这是代码。我确实查看了代码,但我找不到错误发生的原因。感谢您提供的所有帮助,我希望这段代码不会太糟糕,值得审查,哈哈。

async def warncount():
    with open("warncount.json", 'r') as f:
        count = json.load(f)
    number = count[str("Number")]
    return number

async def get_warn_data():
    with open("warns.json", 'r') as f:
        warns = json.load(f)
    return warns


@client.command()
@commands.is_owner()
async def warn(ctx, member: discord.Member, *, arg="No reason given"):
    number = await warncount()
    warns = await get_warn_data()
    case = number+1
    if str(member.id) in warns:
        try:
            obj = {"Author": ctx.author, "Reason": arg}
            warns[str(member.id)][case].append(obj)
            with open("warns.json", 'w') as f:
                json.dump(warns, f)
        except:
            try:
                obj = {"Author": ctx.author, "Reason": arg}
                warns[str(member.id)][case] = obj
                with open("warns.json", 'w') as f:
                    json.dump(warns, f)
            except Exception:
                print(Exception)
        with open("warncount.json", 'r') as f:
            count = json.load(f)
        count[str("Number")] += 1
        with open("warncount.json", 'w') as f:
            json.dump(count, f)
        await ctx.send(f"{member} has been warned for {arg} to check his warns do .warns {member}")

    else:
        try:
            warns[str(member.id)]
            with open("warns.json", 'w') as f:
                json.dump(warns, f)
        except Exception:
            print(Exception)
        try:
            obj = {"Author": ctx.author, "Reason": arg}
            warns[str(member.id)][case].append(obj)
            with open("warns.json", 'w') as f:
                json.dump(warns, f)
        except:
            try:
                obj = {"Author": ctx.author, "Reason": arg}
                warns[str(member.id)][case] = obj
                with open("warns.json", 'w') as f:
                    json.dump(warns, f)
            except Exception:
                print(Exception)
        with open("warncount.json", 'r') as f:
            count = json.load(f)
        count[str("Number")] += 1
        with open("warncount.json", 'w') as f:
            json.dump(count, f)
        await ctx.send(f"{member} has been warned for {arg} to check his warns do .warns {member}")

0 个答案:

没有答案
相关问题