Python Discord.py货币bot;“创建银行帐户”命令仅适用于使用该命令的第一个人。如何修复? @client.event 异步def on_消息(消息): 如果message.content.lower().startswith('.enroll'): dent=message.author.id bcall=message.author.display\u name 放屁={ f“{dent}”:[ { “现金”:0, “银行”:0 } ] } json_object=json.dumps(fart,indent=3) 以open(“bank.json”、“w”)作为输出文件: write(json_对象) ebank=discord.Embed(title=f“{bcall}的注册”,color=random.choice(colors)) ebank.set_author(name='Eisendrache',icon\u url='1〕https://media.discordapp.net/attachments/803648238497824839/816356860369961021/eisendrache.png') ebank.add_字段(name=“User ID”,value=dent,inline=False) ebank.add_字段(name=“Cash”,value=“0:货币”,带翅膀:”,inline=False) ebank.add_字段(name=“Bank”,value=“0:货币”,带翅膀:”,inline=False) ebank.set_图像(url=”https://media.discordapp.net/attachments/817048944022257744/817993420366282772/BOT_BANK.jpeg") ebank.set_footer(text=f'Eisendrache•{(timestamp)}',icon_url='1https://media.discordapp.net/attachments/803648238497824839/816356860369961021/eisendrache.png') 等待message.channel.send(嵌入=ebank)

Python Discord.py货币bot;“创建银行帐户”命令仅适用于使用该命令的第一个人。如何修复? @client.event 异步def on_消息(消息): 如果message.content.lower().startswith('.enroll'): dent=message.author.id bcall=message.author.display\u name 放屁={ f“{dent}”:[ { “现金”:0, “银行”:0 } ] } json_object=json.dumps(fart,indent=3) 以open(“bank.json”、“w”)作为输出文件: write(json_对象) ebank=discord.Embed(title=f“{bcall}的注册”,color=random.choice(colors)) ebank.set_author(name='Eisendrache',icon\u url='1〕https://media.discordapp.net/attachments/803648238497824839/816356860369961021/eisendrache.png') ebank.add_字段(name=“User ID”,value=dent,inline=False) ebank.add_字段(name=“Cash”,value=“0:货币”,带翅膀:”,inline=False) ebank.add_字段(name=“Bank”,value=“0:货币”,带翅膀:”,inline=False) ebank.set_图像(url=”https://media.discordapp.net/attachments/817048944022257744/817993420366282772/BOT_BANK.jpeg") ebank.set_footer(text=f'Eisendrache•{(timestamp)}',icon_url='1https://media.discordapp.net/attachments/803648238497824839/816356860369961021/eisendrache.png') 等待message.channel.send(嵌入=ebank),python,discord.py,Python,Discord.py,JSON文件: { "799335941160173609": [ { “现金”:0, “银行”:0 } ] } 因此,当我使用该命令时,第一个人的信息进入json文件。但此后任何使用它的人,它都不起作用。请帮我解决这个问题。如果您想附加到JSON文件,那么也许您应该告诉Python这就是您想要的 with open("bank.json", "a") as outfile: outfile.write(json_object)

JSON文件:

{
"799335941160173609": [
{
“现金”:0,
“银行”:0
}
]
}

因此,当我使用该命令时,第一个人的信息进入json文件。但此后任何使用它的人,它都不起作用。请帮我解决这个问题。

如果您想附加到JSON文件,那么也许您应该告诉Python这就是您想要的

    with open("bank.json", "a") as outfile: 
      outfile.write(json_object)

然而,这有一个问题。具有一系列单独JSON记录的文件不是有效的JSON文件。如果你只想记住这些,没关系。但如果您计划稍后阅读这些内容并对其进行JSON解码,那么您还有额外的工作要做。这就是为什么JSON对于这样的数据库是一个糟糕的选择。

您需要做的是在每次创建新用户时更新JSON文件。如果创建新词典并将其写入文件。旧数据将被删除

async def on_消息(消息):
#其他东西
以open('bank.json','r')作为f:
bank_details=json.load(f)#使用比fart更好的名称
如果银行详细信息中有str(message.author.id):
#用户已存在
其他:
#创建新用户
银行详细信息[str(message.author.id)]={}这里的详细信息
以open('bank.json','w')作为f:
dump(银行详细信息,f,缩进=3)