我制作了一个正在工作的“禁用模块”,但是当它加载到json文件中时,我收到一条错误消息。
@client.command(aliases=["disable economy"])
async def disable_economy(message):
with open('disable economy.json', 'r+') as f:
channel = json.load(f)
if not f'{message.channel.id}' in channel:
channel[f'{message.channel.id}'] = "Channel ID"
json.dump(channel, f)
await message.channel.send(f"Economy has been disabled in <#{message.channel.id}>. ")
return
if f'{message.channel.id}' in channel:
await message.channel.send("Economy is already disabled in this channel.")
return
执行命令后,将其加载到json文件中,如下所示:
{}{"750485129436201023": "Channel ID"}
,收到的错误消息是:End of file expected
。错误在第二个{之间。有人可以帮忙吗?
答案 0 :(得分:1)
{}{"750485129436201023": "Channel ID"}
是无效的JSON。
有效JSON只能有一个根元素,例如{}
将JSON文件更改为:
{"750485129436201023": "Channel ID"}
Python将附加到文件,而不是覆盖文件,最简单的解决方法是在写入之前将seek
移至文件的开头:
f.seek(0)
json.dump(channel, f)