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

Python如何删除JSON对象中的指定数组?现有代码运行失效怎么解决?

问题原因

  • 你第二次打开文件使用的r+模式是读写模式,写入时只会从指针位置开始覆盖原有内容,不会清空文件原有的全部内容。修改后的JSON结构比原文件短,就会残留旧文件末尾的多余字符,导致最终JSON格式错误,看起来就像删除操作没生效。
  • 你修改完字典后要全量更新JSON文件,直接用w写入模式更合适,w模式会直接清空原有内容后写入新内容,完全覆盖旧文件。

修正后的代码

import json 

# 第一步:读取文件内容
with open('numbers.json', 'r') as json_string:
    conv_json = json.load(json_string)

# 第二步:删除指定键
del conv_json["numlist2"]

# 第三步:用w模式写入,直接覆盖整个文件
with open('numbers.json', 'w') as json_string:
    json.dump(conv_json, json_string, indent=2)

可选优化方案:单次打开文件完成读写

如果你不想打开两次文件,也可以用r+模式配合指针移动和清空操作实现:

import json 

with open('numbers.json', 'r+') as f:
    # 读取内容
    conv_json = json.load(f)
    # 删除键
    del conv_json["numlist2"]
    # 将文件指针移到开头
    f.seek(0)
    # 写入新内容
    json.dump(conv_json, f, indent=2)
    # 截断文件,清除指针后面残留的旧内容
    f.truncate()

内容的提问来源于stack exchange,提问作者user509OZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:36:04