为什么这个discord python命令只运行一次?

为什么这个discord python命令只运行一次?,python,json,python-3.x,discord.py,python-asyncio,Python,Json,Python 3.x,Discord.py,Python Asyncio,我已经试着让这个代码工作了一段时间 @bot.group() 异步def供体(ctx): ''捐赠者命令'' @donator.command() 异步def寄存器(ctx,Steam_ID:str): ''注册您的捐赠者状态'' 如果Steam ID(Steam\u ID.)有效(): 转换=蒸汽ID(蒸汽ID) Steam64ID=convert.as_64 author=ctx.author 将open('donators.json')作为d: data=json.load(d) 新闻字符

我已经试着让这个代码工作了一段时间

@bot.group()
异步def供体(ctx):
''捐赠者命令''
@donator.command()
异步def寄存器(ctx,Steam_ID:str):
''注册您的捐赠者状态''
如果Steam ID(Steam\u ID.)有效():
转换=蒸汽ID(蒸汽ID)
Steam64ID=convert.as_64
author=ctx.author
将open('donators.json')作为d:
data=json.load(d)
新闻字符串={
f“{author.id}”:{
“steam”:f“{Steam64ID}”,
“层”:“6”
}
}
data.update(新闻字符串)
将open('donators.json','w')作为d:
dump(数据,d,缩进=2)
其他:
发送(“无效的蒸汽ID!\n此命令接受任何类型的蒸汽ID”)
当我运行它时,它将产生我想要的结果,一个包含正确信息的有效json文件被写入,没有错误。 如果我再运行一次,什么也不会发生,绝对不会发生。这就是json最初的结构

{
"000000000000000000": {
“蒸汽”:“00000000000000000”,
“层”:“0”
}
}
运行python脚本后,它将如下所示

{
"000000000000000000": {
“蒸汽”:“00000000000000000”,
“层”:“0”
},
"240912491624923137": {
“蒸汽”:“76561197960265729”,
“层”:“6”
}
}

如果我再运行一次,什么也不会发生。没有写入任何内容,json文件保持不变,没有错误。

您应该将json文件构造为字典列表

{"data": [{"id": 0, "name": "Hello"}, {"id": 1, "name": "Test"}]}

谢谢你的回复!我的问题与JSON结构无关,事实上我当前的结构工作正常。问题是我试图在同一个帐户下添加多个条目,因此它只会更新已经存在的密钥,而不是创建一个副本。我犯了个大错误,哎呀!在这种情况下,无法创建副本。虽然你可以编辑一个现有的索引。不,不,我不想要重复的,但是我没有想清楚,忘记了它是如何工作的哈哈!试图在我制作的系统上复制,该系统明确不允许复制。