Python中如何修改JSON文件里指定索引的console字段
实现方案
你之前的写法有两处明显逻辑错误:
- 你定义的临时字典
{"console": "In stock"}只有一个键,根本没有索引为2的内容,访问dict[2]会直接触发KeyError - 所有任务对象都嵌套在根字典的
tasks数组里,你既没有定位到这个数组,也没有找到对应索引的任务对象,update的操作目标完全错了。
正确操作流程
- 先把JSON文件内容解析为Python可操作的字典对象,不要用
dict、json这类Python内置的类型/模块名当变量名,不然会覆盖内置功能引发莫名其妙的报错 - 从解析后的根字典中取出
tasks数组 - 直接用传入的数字索引(0、1、2)定位到目标任务
- 给目标任务的
console字段直接赋新值即可,不需要额外构造临时字典做update操作
完整可运行代码
import json # 加载本地JSON文件,解析为Python字典 with open("tasks.json", "r", encoding="utf-8") as f: # 用task_data命名,避免覆盖内置的json模块 task_data = json.load(f) # 定义需要修改的任务索引和新的console值 target_index = 2 new_console_value = "In stock" # 链式定位直接赋值 task_data["tasks"][target_index]["console"] = new_console_value # 修改完成后如果需要写回原文件,执行以下代码 with open("tasks.json", "w", encoding="utf-8") as f: json.dump(task_data, f, ensure_ascii=False, indent=2)
内容的提问来源于stack exchange,提问作者Gwava Jaba
相关产品推荐
相关产品推荐

