我正在建立一个机器人,应该存储每个 member
以及相应的 guild
在json中。这在代码中工作没有问题,但我只是不能得到一件事是正确的。
首先,代码如下:
async def on_member_join(self, member):
with open("src/member.json", "r", encoding='utf-8') as f:
mlist = json.load(f)
guild = str(member.id)
#try:
#mlist[str(member.guild.id)] = guild
#except KeyError:
#print("KEY ERROR")
#mlist[str(member.guild.id)] = guild
if guild in mlist:
return print("IN LIST")
else:
mlist[str(member.guild.id)] = guild
print("NOT IN LIST")
with open('src/member.json', 'w', encoding='utf-8') as f:
json.dump(mlist, f, indent=2)
当我使用我的帐户进入服务器时,会创建条目,但当我重新进入服务器时,会创建条目 print("NOT IN LIST")
还是上来了。
这就是我的json的样子:
{
"731855252277690XXX": "704712637988077XXX" # GuildID : UserID
}
这里有人看到我的错误吗?
我已经尝试了以下方法:
反向搜索:
if guild not in raidlist try
及 except
声明包括
远离的 str
转化 member.id
或 guild.id
去别的地方
1条答案
按热度按时间wrrgggsh1#
您现在正在做的是将每个公会和用户存储为单个键值对。换句话说,每个公会只能储存一名成员。我们可以做的是使用列表:
您应该在运行此代码之前清除json,因为它与以前的格式不兼容。
这样,json将如下所示: