有没有办法在使用discord.py的python字典中将用户id作为键?
我试图设置一个与每个用户分开的变量,例如: 用户a:钱:400 用户b:钱:300 但是我试着让用户成为一个用户,通过用户id,我已经试过了有没有办法在使用discord.py的python字典中将用户id作为键?,discord.py,Discord.py,我试图设置一个与每个用户分开的变量,例如: 用户a:钱:400 用户b:钱:300 但是我试着让用户成为一个用户,通过用户id,我已经试过了 if message.content.startswith('!info'): if message.author.id in data: print('true') else: print('false') with open('data.json', 'r+') as file: data = json.lo
if message.content.startswith('!info'):
if message.author.id in data:
print('true')
else:
print('false')
with open('data.json', 'r+') as file:
data = json.load(file)
data[str(message.author.id)]['money'] += 300
file.seek(0)
json.dump(data, file, indent=4)
但是我得到了一个错误:“KeyError:{my user id}”a
KeyError
意味着你的用户id根本不在字典中。尝试执行以下操作以修复它:
JSON文件:
{
"": {
“金钱”:0
},
"" : {
“金钱”:0
}
}
Python文件:
以open('users.json','r+')作为文件的:
data=json.load(文件)
数据[str(message.author.id)]={“money”:0}
数据[str(message.author.id)]['money']+=300
file.seek(0)
dump(数据、文件、缩进=4)
另外,
author.id
是一个int
,因此您必须将其转换为str
,它才能正常工作。我的意思是每次新用户不在字典中时,我都要添加一个键,我试图添加一个带有数据[str(message.author.id)]['money'的键但这是同样的,你可以告诉我data
是什么定义的,你对data
做了什么,比如删除键之类的,数据是json.load变量,我给你看数据:{'test':1}就这些?它甚至没有钱
或用户id
甚至没有嵌套字典。是的,就是这样,我想说的是,如果一个用户不在字典上,我想添加一个新的键,使用嵌套字典,我已经尝试了你的解决方案,我已经尝试了你的解决方案,但我又遇到了一个键错误