有没有办法在使用discord.py的python字典中将用户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

我试图设置一个与每个用户分开的变量,例如: 用户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.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
甚至没有嵌套字典。是的,就是这样,我想说的是,如果一个用户不在字典上,我想添加一个新的键,使用嵌套字典,我已经尝试了你的解决方案,我已经尝试了你的解决方案,但我又遇到了一个键错误