python如何快速的判断一个key在json的第几层呢,并修改其value值

python如何快速的判断一个key在json的第几层呢,并修改其value值

def find_and_modify_key(json_obj, target_key, new_value, current_level=1):
    # 检查当前层是否包含目标key
    if target_key in json_obj:
        print(f"找到 '{target_key}' 在第 {current_level} 层。")
        # 修改key的值
        json_obj[target_key] = new_value
        return current_level, json_obj
    else:
        # 否则,递归地搜索嵌套的字典
        for key, value in json_obj.items():
            if isinstance(value, dict):
                level, modified_obj = find_and_modify_key(value, target_key, new_value, current_level + 1)
                if level is not None:  # 如果找到了key
                    # 因为已经找到并修改了key,可以中断进一步的搜索
                    return level, modified_obj
        # 如果当前层及其子层都没有找到key,返回None
        return None, json_obj

# 示例JSON对象
json_data = {
    "level1": {
        "level2": {
            "key_to_find": "old_value",
            "another_key": "value"
        },
        "level2_2": {
            "key_to_find": "another_old_value"
        }
    },
    "single_level": "data"
}

# 要查找和修改的key及其新值
target_key = "key_to_find"
new_value = "new_value"

# 查找并修改key
level, modified_json = find_and_modify_key(json_data, target_key, new_value)

if level is not None:
    print(f"修改后的JSON数据:{modified_json}")
else:
    print(f"在JSON数据中未找到 '{target_key}'。")

最近更新

  1. TCP协议是安全的吗?

    2024-06-06 16:48:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-06 16:48:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-06 16:48:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-06 16:48:05       20 阅读

热门阅读

  1. CentOS 7.9 安装配置Python2与Python3共存

    2024-06-06 16:48:05       12 阅读
  2. 基于Python实现地震数据可视化的设计与实现

    2024-06-06 16:48:05       8 阅读
  3. 解决splice改变原数组的BUG

    2024-06-06 16:48:05       10 阅读
  4. 如何配置Oracle的ACL权限

    2024-06-06 16:48:05       8 阅读
  5. 创建邮件系统的一个思路

    2024-06-06 16:48:05       9 阅读
  6. js 数组过滤删除空对象

    2024-06-06 16:48:05       7 阅读
  7. 基于R语言的糖尿病检测模型准确率97%

    2024-06-06 16:48:05       10 阅读
  8. 【杂记-IDS入侵检测系统、IPS入侵防御系统】

    2024-06-06 16:48:05       11 阅读
  9. Android 架构组件面试问答

    2024-06-06 16:48:05       8 阅读