Python 正在获取帮会id[Discord.py][json]

Python 正在获取帮会id[Discord.py][json],python,json,python-3.x,discord,discord.py,Python,Json,Python 3.x,Discord,Discord.py,因此,当我的机器人离线时,有人将其添加到他们的服务器中,我会在机器人再次启动后收到一个关键错误,因为在json文件中找不到ID,所以我需要以某种方式修复问题,当机器人再次在线时,获取公会ID并放入json中。有人告诉我做一个尝试,除了之外,但我不知道如何在机器人上线后获得公会id并输入json 这是代码,我觉得做起来很简单,但现在我真的不明白 with open('prefixes.json' , 'r') as f: prefixes = json.load(f)

因此,当我的机器人离线时,有人将其添加到他们的服务器中,我会在机器人再次启动后收到一个关键错误,因为在json文件中找不到ID,所以我需要以某种方式修复问题,当机器人再次在线时,获取公会ID并放入json中。有人告诉我做一个
尝试,除了
之外,但我不知道如何在机器人上线后获得公会id并输入json
这是代码,我觉得做起来很简单,但现在我真的不明白

    with open('prefixes.json' , 'r') as f:
        prefixes = json.load(f)

 
        return prefixes[str(message.guild.id)]

 
client = commands.Bot(command_prefix=get_prefix)



@client.event
async def on_guild_join(guild):
    with open('prefixes.json', 'r') as f:
        prefixes = json.load(f)

    prefixes[str(guild.id)] = 's!'

    with open('prefixes.json' , 'w') as f:
        json.dump(prefixes, f, indent = 4 )

@client.event
async def on_guild_remove(guild) :
    with open('prefixes.json' , 'r') as f:
        prefixes = json.load(f)

    prefixes.pop(str(guild.id))

    with open('prefixes.json' , 'w') as f:
        json.dump(prefixes, f, indent = 4 )```
试试看:
#获取前缀,然后返回它
以open('prefixes.json','r')作为f:
前缀=json.load(f)
返回前缀[str(message.guild.id)]
KeyError除外:#如果上面的代码失败,将执行下面的raise KeyError代码
#将数据插入json,并返回默认前缀
以open('prefixes.json','r')作为f:
前缀=json.load(f)
前缀[str(message.guild.id)]='s!'
将open('prefixes.json','w')作为f:
dump(前缀,f,缩进=4)
返回“s!”#或者您可以重复获取前缀的过程
试试:
#获取前缀,然后返回它
以open('prefixes.json','r')作为f:
前缀=json.load(f)
返回前缀[str(message.guild.id)]
KeyError除外:#如果上面的代码失败,将执行下面的raise KeyError代码
#将数据插入json,并返回默认前缀
以open('prefixes.json','r')作为f:
前缀=json.load(f)
前缀[str(message.guild.id)]='s!'
将open('prefixes.json','w')作为f:
dump(前缀,f,缩进=4)
返回“s!”#或者您可以重复获取前缀的过程

我试过了,并给了我另一个错误,在get_前缀[str(guild.id)]='s中的第28行AttributeError:'Bot'对象没有属性'id',并且:第21行,在get_prefix return prefixes[str(message.guild.id)]中,key错误:'-'@Ares edited,我遗漏了一些内容。对不起。还有错误吗?现在它工作正常了,谢谢,我真的很难修复它。我试过了,并给了我另一个错误,'get_prefix prefixes[str(guild.id)]='s'中的第28行AttributeError:'Bot'对象没有属性'id',并且:第21行,在get_prefix return prefixes[str(message.guild.id)]中,key错误:'-'@Ares edited,我遗漏了一些内容。对不起。仍然有错误吗?现在它工作正常,谢谢你,我真的很难修复它