以下是一个遍历嵌套数组并匹配ID的示例代码:
def find_id(nested_array, target_id):
for item in nested_array:
if isinstance(item, list):
result = find_id(item, target_id) # 递归遍历嵌套的子数组
if result is not None:
return result
elif isinstance(item, dict):
if item.get("id") == target_id:
return item
return None
# 示例嵌套数组
nested_array = [
{"id": 1, "name": "Alice"},
{"id": 2, "name": "Bob"},
{"id": 3, "name": "Charlie"},
[
{"id": 4, "name": "David"},
{"id": 5, "name": "Eve"},
{"id": 6, "name": "Frank"},
],
{"id": 7, "name": "Grace"},
]
# 使用示例
target_id = 5
result = find_id(nested_array, target_id)
if result is not None:
print(f"找到ID为{target_id}的项:{result}")
else:
print(f"未找到ID为{target_id}的项")
输出:
找到ID为5的项:{'id': 5, 'name': 'Eve'}
这段代码使用了递归来处理嵌套的子数组。它遍历每个元素,如果元素是一个子数组,则递归调用find_id
函数来搜索子数组中是否存在目标ID。如果元素是一个字典,则检查其id
键是否与目标ID匹配。如果找到匹配的项,则返回该项;如果遍历完整个嵌套数组都没有找到匹配的项,则返回None
。