Python中更新嵌套JSON对象sqlExpression值的正确代码实现
正确修改JSON文件中sqlExpression值的Python实现
原代码的问题
你的代码存在两个关键错误:
- 键名未加引号:
properties、sqlFilter、sqlExpression是JSON对象的字符串键,必须用引号包裹(比如'properties'),否则会被Python当作变量名处理 - 错误使用数组索引:目标路径里的
properties、sqlFilter、sqlExpression都是对象属性,不是数组元素,不需要加[0]索引
正确的实现步骤
要修改JSON文件中的目标值,需要完成读取文件→修改内存中的JSON对象→写回文件三个步骤:
完整代码示例
import json # 读取JSON文件 with open('input.json', 'r', encoding='utf-8') as f: data = json.load(f) # 定位到sqlExpression并修改值 data['resources'][0]['resources'][0]['resources'][0]['resources'][0]['properties']['sqlFilter']['sqlExpression'] = 'BYE' # 将修改后的内容写回文件 with open('input.json', 'w', encoding='utf-8') as f: json.dump(data, f, indent=2)
路径说明
对应你提供的JSON结构,目标字段的层级路径拆解:
data['resources'][0]:取最外层resources数组的第一个元素['resources'][0]:取该元素内嵌套的resources数组第一个元素- 重复两次上述操作,直到找到包含
properties的那个嵌套对象 ['properties']['sqlFilter']['sqlExpression']:直接访问对象属性,修改其值为'BYE'
内容的提问来源于stack exchange,提问作者teja
相关产品推荐
相关产品推荐

