python如何快速的判断一个key在json的第几层呢,并修改其value值
python
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}'。")