以下是一个示例代码,演示如何遍历具有层级子项的JSON,并添加键值对:
def add_key_value(json_data, key, value):
if isinstance(json_data, dict):
for k, v in json_data.items():
if isinstance(v, (dict, list)):
add_key_value(v, key, value)
elif isinstance(v, str):
# 在当前键值对中添加新的键值对
json_data[k][key] = value
elif isinstance(json_data, list):
for item in json_data:
if isinstance(item, (dict, list)):
add_key_value(item, key, value)
# 示例JSON数据
json_data = {
"name": "John",
"age": 30,
"children": [
{
"name": "Alice",
"age": 5
},
{
"name": "Bob",
"age": 10,
"children": [
{
"name": "Charlie",
"age": 3
}
]
}
]
}
# 添加键值对
add_key_value(json_data, "new_key", "new_value")
# 打印更新后的JSON数据
import json
print(json.dumps(json_data, indent=4))
输出结果:
{
"name": "John",
"age": 30,
"children": [
{
"name": "Alice",
"age": 5,
"new_key": "new_value"
},
{
"name": "Bob",
"age": 10,
"children": [
{
"name": "Charlie",
"age": 3,
"new_key": "new_value"
}
],
"new_key": "new_value"
}
],
"new_key": "new_value"
}
在上面的示例中,add_key_value
函数用于遍历JSON数据,并在每个键值对中添加新的键值对。该函数通过递归调用来处理具有层级子项的情况。
上一篇:遍历具有不同长度的二维数组