为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这个不和谐的 python 命令只运行一次?

为什么这个不和谐的 python 命令只运行一次?

守着一只汪 2023-07-18 17:57:20
我已经尝试让这段代码正常工作一段时间了;@bot.group()async def donator(ctx):    '''Commands for donators'''@donator.command()async def register(ctx, Steam_ID : str):    '''Registers your donator status'''    if SteamID(Steam_ID).is_valid():        convert = SteamID(Steam_ID)        Steam64ID = convert.as_64        author = ctx.author        with open('donators.json') as d:            data = json.load(d)        newstring = {        f"{author.id}": {                "steam": f"{Steam64ID}",                "tier": "6"            }        }        data.update(newstring)        with open('donators.json', 'w') as d:            json.dump(data, d, indent=2)    else:        ctx.send("Invalid Steam ID!\nThis command accepts any kind of Steam ID.")当我运行它时,它将产生我想要的结果,写入一个包含正确信息的有效 json 文件,没有错误。如果我再次运行它,什么也不会发生,绝对什么也不会发生。这就是 json 最初的结构。{  "000000000000000000": {    "steam": "00000000000000000",    "tier": "0"  }}运行 python 脚本后,它看起来像这样{  "000000000000000000": {    "steam": "00000000000000000",    "tier": "0"  },  "240912491624923137": {    "steam": "76561197960265729",    "tier": "6"  }}如果我第二次运行它,什么也不会发生。没有写入任何内容,json 文件保持不变并且没有错误。
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

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

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


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信