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

是否可递归编辑可迭代对象子元素 实现可变长度keys嵌套赋值

嵌套对象递归赋值实现

核心递归函数

def recursive_set(data, keys, value):
    # 递归终止:只剩最后一个key,直接对当前层级赋值
    if len(keys) == 1:
        data[keys[0]] = value
        return
    # 取当前层级的key,进入下一层嵌套对象继续执行递归
    current_key = keys[0]
    recursive_set(data[current_key], keys[1:], value)

调用示例

# 测试用嵌套对象(支持dict、list混合嵌套)
target_data = {
    "product": {
        "detail": {
            "stock": 120,
            "specs": ["red", "XL", "cotton"]
        }
    }
}

# 待覆写的(keys, value)元素集合
override_list = [
    (["product", "detail", "stock"], 89),
    (["product", "detail", "specs", 1], "M")
]

# 批量执行覆写
for keys, val in override_list:
    recursive_set(target_data, keys, val)

补充说明

  • 以上实现默认传入的keys路径在嵌套对象中已存在,如果你需要支持路径不存在时自动创建中间层级,可以在递归逻辑前增加校验:判断当前key是否存在于当前层级对象中,不存在则根据下一个key的类型自动初始化dict或list即可。
  • 如果需要兼容list索引越界、key类型不匹配等异常场景,可自行增加对应的捕获和处理逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 15:24:02