You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Replit中删除JSON文件内嵌列表元素时出现错误如何解决

问题根因与修复方案

出现JSON格式错误的核心原因是:你使用r+模式打开文件写入时,修改后生成的新JSON内容长度短于原文件的内容长度,旧文件末尾残留的冗余内容没有被清除,最终拼接成了结构不合法的JSON内容,导致解析报错。

另外你代码中把加载得到的JSON数据和文件对象使用了相同的变量名jsonfile,容易引发逻辑混淆,建议调整变量名区分。

修复代码

最简便的解决方案是将第二次打开文件的模式从r+改为w,w模式会自动清空原文件所有内容后写入新数据,不会残留旧内容:

import json
# 读取原JSON文件内容,用独立变量存储解析后的数据
with open("main.json","r") as json_file:
    json_data = json.load(json_file)
key = "0"

index = int(input("请输入要删除的索引: "))

if key in json_data:
    del json_data[key][index]
    # 用w模式覆盖写入新的JSON内容
    with open("main.json","w") as f:
        json.dump(json_data, f, indent=3)

如果你要保留r+模式,也可以在写入完成后调用truncate()方法手动截断文件多余内容:

# 仅替换第二次文件操作的代码段
with open("main.json","r+") as f:
    if key in json_data:
        del json_data[key][index]
        # 把文件指针移到开头位置
        f.seek(0)
        json.dump(json_data,f,indent=3)
        # 截断指针位置之后的所有冗余内容
        f.truncate()

内容的提问来源于stack exchange,提问作者DevER-M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:54:03