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

使用Python修改、删除JSON原有字段并保存为新文件的操作问题

Python操作JSON文件问题解答

问题根源

你当前使用的JSON是嵌套字典结构,顶层只有block一个键,所有属性都存放在该键对应的子字典中。你直接对顶层的json_object赋值,自然会在顶层新增键,而非修改嵌套在内层的原有字段。

字段修改/删除方法

  • 修改已有嵌套字段:补全字段的层级路径即可
    示例代码:
    # 修改snow字段的值
    json_object["block"]["snow"] = True
    # 修改coordinates字段的值
    json_object["block"]["coordinates"] = {'y' : 186, 'x' : 96, 'z' : 1041}
    
  • 删除字段:使用del关键字指定要删除的字段路径即可
    示例代码:
    # 删除不需要的luminant字段
    del json_object["block"]["luminant"]
    

保存为新文件的方法

是的,只要修改open方法传入的文件名参数即可,比如要保存为new_gras_blok.json,就把写入阶段的文件名改为对应名称即可,不会覆盖原文件。

代码优化建议

推荐使用with上下文管理器操作文件,无需手动调用close(),可避免文件句柄泄漏,优化后的完整可运行代码如下:

import json

# 读取原有JSON文件
with open("gras_blok.json", "r") as f:
    json_object = json.load(f)

# 修改目标字段
json_object["block"]["snow"] = True
json_object["block"]["coordinates"] = {'y' : 186, 'x' : 96, 'z' : 1041}
# 如果需要删除字段,取消注释下一行即可
# del json_object["block"]["luminant"]

# 保存为新JSON文件,indent参数可格式化输出JSON,提升可读性
with open("new_gras_blok.json", "w") as f:
    json.dump(json_object, f, indent=4)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:36:03