Python 3.7向嵌套JSON的Honor字段追加内容报错求助
向嵌套JSON的Honor字段追加键值对问题解决
错误原因
你遇到的KeyError: 'Honor'是因为Honor字段不在JSON根层级,而是嵌套在data["web"]["all"]["side"]路径下。另外你的代码逻辑是往Honor数组追加新对象,但需求是给数组内已有的第一个对象添加键值对,这也不符合预期结构。
修正后的代码
import json def write_json(data, filename="exmpleData.json"): with open(filename, "w") as f: json.dump(data, f, indent=2) with open("exmpleData.json") as json_files: data = json.load(json_files) # 定位到Honor数组中的第一个对象 target_obj = data["web"]["all"]["side"]["Honor"][0] # 添加需求的键值对 target_obj["Required"] = "YES" target_obj["Prepay"] = "NO" write_json(data)
关键修正点
- 路径修正:通过多层索引
data["web"]["all"]["side"]["Honor"]找到目标数组,取索引0的元素(Honor数组仅包含一个对象) - 逻辑修正:直接在已有对象中添加键值对,而非用
append新增对象,匹配你期望的JSON结构 - 键名匹配:使用需求中指定的
Required和Prepay(注意大小写)
内容的提问来源于stack exchange,提问作者JLSG
相关产品推荐
相关产品推荐

