我已經嘗試讓這段代碼正常工作一段時間了;@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"}]}
添加回答
舉報
0/150
提交
取消