Python 正在获取帮会id[Discord.py][json]
因此,当我的机器人离线时,有人将其添加到他们的服务器中,我会在机器人再次启动后收到一个关键错误,因为在json文件中找不到ID,所以我需要以某种方式修复问题,当机器人再次在线时,获取公会ID并放入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)
尝试,除了之外,但我不知道如何在机器人上线后获得公会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,我遗漏了一些内容。对不起。仍然有错误吗?现在它工作正常,谢谢你,我真的很难修复它