以下是一个示例代码,演示如何遍历JSON键值对以设置另一个键值:
import json
def set_value(data, key, value):
if isinstance(data, dict):
for k, v in data.items():
if k == key:
data[k] = value
else:
set_value(v, key, value)
elif isinstance(data, list):
for item in data:
set_value(item, key, value)
# 示例JSON数据
json_data = '''
{
"name": "John",
"age": 30,
"city": "New York",
"children": [
{
"name": "Alice",
"age": 5
},
{
"name": "Bob",
"age": 8
}
]
}
'''
# 解析JSON数据
data = json.loads(json_data)
# 遍历JSON键值对,设置另一个键值
set_value(data, "age", 35)
# 打印更新后的JSON数据
print(json.dumps(data, indent=4))
上述代码中,我们定义了一个set_value
函数,该函数递归遍历JSON数据的键值对。如果键与传入的key
相匹配,则更新对应的值为传入的value
。如果值是一个字典或列表,则递归地调用set_value
函数继续遍历其内部的键值对。
在示例中,我们将JSON数据解析为一个字典对象,然后调用set_value
函数来设置age
键的值为35。最后,我们使用json.dumps
函数将更新后的数据转换为格式化的JSON字符串,并打印出来。