85 lines
3.5 KiB
Python
Raw Normal View History

2024-10-27 12:08:54 +08:00
def extract_matching_keys(data_dict, good_list):
"""
递归遍历data_dict查找good_list中存在的键并将匹配的键及其值添加到结果字典中
2024-09-20 18:01:48 +08:00
2024-10-27 12:08:54 +08:00
参数:
- data_dict (dict): 要遍历的嵌套字典
- good_list (list): 包含要查找的键的列表
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
返回:
- dict: 包含所有匹配键及其值的字典
"""
result = {}
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
def recurse(current_dict):
if isinstance(current_dict, dict):
for key, value in current_dict.items():
if key in good_list:
result[key] = value
# 递归遍历子字典
recurse(value)
elif isinstance(current_dict, list):
for item in current_dict:
recurse(item)
# 如果current_dict不是dict或list则无需进一步处理
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
recurse(data_dict)
return result
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
# 示例数据
data_dict = {
"门禁管理系统": {
"门禁控制器": {
"系统架构": "1.系统采用 CS架构支持 Web端登录支持远程软硬件重启升级、维护、管理。",
"联网方式": "2.★支持 TCP/IP、4G、RS485联网方式、有线与无线WIFI可自动切换 ,控制器支持百台到上千台设备组网,需满足大楼多门点的管理数量要求。",
"安装方式": "3.★安装方式支持壁挂安装。",
"开门方式": "4.★支持卡、密码、首卡、双卡、主卡/副卡、胁迫码、多卡分组、指纹识别+中心确认等开门方式。全面支持读卡器、指纹、人脸、指静脉、RS485识读设备的混合接入。"
},
"出门按钮": {
"安装方式": "标准 86底盒安装方式支持常开常闭方式",
"结构": "塑料面板",
"性能": "最大耐电流 1.25A电压 250V",
"服务要求": "产品 需全 国联 保,享 受三 包服 务,保 修期: 3年。"
},
"单门电磁锁": {
"1通电上锁断电开锁开门时间可调节。": "1通电上锁断电开锁开门时间可调节。",
"2稳定性强连续工作锁体无故障使用更安全。": "2稳定性强连续工作锁体无故障使用更安全。"
},
"指纹仪": {
"传感器类型": "1.先进半导体传感器,全面领先于普通光学识别技术,更好的判别假指纹、湿指、污损破皮手指。",
"显示及提示": "2.直观的 LCD液晶显示及语音验证提示配针孔摄像机实现视频联动抓拍手动布撤防实现与监控中心门禁系统实现对讲外置语音盒",
"验证方式": "3.支持 IC卡、指纹、卡加密码、编号多种组合验证方式。"
},
"门禁服务器": {
"CPU": "1颗 intel至强系列处理器核数≥12核主频≥2.2GHz",
"内存": "32G*2 DDR416根内存插槽最大支持扩展至 2TB内存",
"硬盘": "4块 600G 10K 2.5寸 SAS硬盘"
}
},
"摄像系统": {
"佳能摄像机": {
"清晰度": "1k"
},
"尼康录影机": {
"画质": "2k"
}
}
}
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
good_list = [
"门禁控制器",
"出门按钮",
"单门电磁锁",
"指纹仪",
"门禁服务器",
"佳能摄像机",
"尼康录影机"
]
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
# 使用函数提取匹配的键
filtered_dict = extract_matching_keys(data_dict, good_list)
2024-09-27 15:00:30 +08:00
2024-10-27 12:08:54 +08:00
# 打印结果
import pprint
pprint.pprint(filtered_dict)