You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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结构,目标字段的层级路径拆解:

  1. data['resources'][0]:取最外层resources数组的第一个元素
  2. ['resources'][0]:取该元素内嵌套的resources数组第一个元素
  3. 重复两次上述操作,直到找到包含properties的那个嵌套对象
  4. ['properties']['sqlFilter']['sqlExpression']:直接访问对象属性,修改其值为'BYE'

内容的提问来源于stack exchange,提问作者teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 11:45:38