Python修改JSON指定字段值报错,如何保持结构完成更新?
解决JSON修改时的TypeError问题并完成指定修改
错误原因
你遇到的TypeError是因为finalorder['ItemList']是列表类型(对应JSON里的方括号[]),列表只能用整数索引或切片访问元素,不能直接用字符串'Quantity'。必须先访问列表里的具体字典元素,再修改对应字段。
修正后的完整代码
import json # 必须导入json模块,原代码缺失这一步 # 读取JSON文件 with open('orderprepare.json', 'r') as f: finalorder = json.load(f) # 修改ItemList中第一个元素的Quantity为500 finalorder['ItemList'][0]['Quantity'] = 500 # 修改BillTo中的PostalCode为90011 finalorder['BillTo']['PostalCode'] = 90011 # 写回JSON文件,indent参数保留原格式缩进,避免结构被压缩 with open('orderprepare.json', 'w') as f: json.dump(finalorder, f, indent=3)
关键说明
- 针对
ItemList:它是列表结构,当前仅包含一个字典元素,用[0]取第一个元素后,再通过['Quantity']修改对应值 - 针对
BillTo:它本身是字典类型(对应JSON里的大括号{}),直接通过层级键名即可修改PostalCode indent=3参数会让写回的JSON保持和原文件一致的缩进格式,完全保留原有结构(包括方括号、大括号的层级)
内容的提问来源于stack exchange,提问作者Alex Co
相关产品推荐
相关产品推荐

