这里是一个示例的解决方法,使用了递归的方式来实现按键减少数组对象并返回嵌套对象。
def reduce_array(obj, key):
# 如果输入的对象是一个字典
if isinstance(obj, dict):
# 创建一个新的字典用于存储结果
result = {}
# 遍历字典中的键值对
for k, v in obj.items():
# 如果键不等于要减少的键,则将键值对添加到结果字典中
if k != key:
result[k] = reduce_array(v, key)
return result
# 如果输入的对象是一个列表
elif isinstance(obj, list):
# 创建一个新的列表用于存储结果
result = []
# 遍历列表中的元素
for item in obj:
# 如果元素是一个字典,则递归调用 reduce_array 函数
if isinstance(item, dict):
reduced_item = reduce_array(item, key)
result.append(reduced_item)
# 否则直接将元素添加到结果列表中
else:
result.append(item)
return result
# 如果输入的对象不是字典或列表,则直接返回该对象
else:
return obj
使用示例:
data = {
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
},
"friends": [
{"name": "Mary", "age": 25},
{"name": "Tom", "age": 35}
]
}
reduced_data = reduce_array(data, "age")
print(reduced_data)
输出结果:
{
"name": "John",
"address": {
"street": "123 Main St",
"city": "New York"
},
"friends": [
{"name": "Mary"},
{"name": "Tom"}
]
}
在上面的示例中,我们将输入的对象中所有键为"age"的键值对都删除了,并返回了一个减少了"age"键的新对象。
上一篇:按键减少和求和元组
下一篇:按键集对列表中的每个地图进行排序