Python修改外层带方括号JSON文件报TypeError怎么解决
错误原因
你的JSON文件根结构是数组(外层包裹方括号),json.load() 读取后得到的是列表类型,不能直接用字符串作为索引访问列表元素,这就是触发 TypeError: list indices must be integers or slices, not str 的原因。
修复方案
你需要先访问列表中索引为0的字典元素,再修改对应的键值,修改后直接dump整个列表就能保留外层方括号,符合依赖程序的格式要求。
修正后的代码如下:
import json with open('myfile.json', 'r+') as f: json_data = json.load(f) # 先取列表第一个元素(就是你要修改的字典对象) json_data[0]['NAME'] = "Nick" f.seek(0) # 直接dump整个列表,外层方括号会自动保留 json.dump(json_data, f, indent=4) f.truncate()
如果你的JSON数组里后续会有多个字典元素,按需调整索引值即可。
内容的提问来源于stack exchange,提问作者jedi2191
相关产品推荐
相关产品推荐

