11.21 解决了复杂、多层的采购需求bug
This commit is contained in:
parent
68704086fe
commit
0f17a5dd76
@ -1,14 +1,755 @@
|
||||
from docx import Document
|
||||
# -*- encoding:utf-8 -*-
|
||||
import json
|
||||
import re
|
||||
from collections import defaultdict
|
||||
import string
|
||||
|
||||
from flask_app.general.format_change import pdf2docx
|
||||
local_path_in=r"C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile_invalid.pdf"
|
||||
# invalid_docpath=pdf2docx(local_path_in)
|
||||
invalid_docpath=r'C:\Users\Administrator\Desktop\fsdownload\457ee03d-c61c-4672-b959-2bbb35a1de29\ztbfile_invalid.docx'
|
||||
try:
|
||||
# 尝试加载 .docx 文件
|
||||
doc = Document(invalid_docpath)
|
||||
# 如果可以成功读取,则返回 True
|
||||
print("yes")
|
||||
except Exception as e:
|
||||
# 捕获异常并打印错误信息
|
||||
print("no")
|
||||
|
||||
def get_suffix(n):
|
||||
"""
|
||||
根据数字n返回对应的字母后缀。
|
||||
1 -> 'a', 2 -> 'b', ..., 26 -> 'z', 27 -> 'aa', 28 -> 'ab', ...
|
||||
"""
|
||||
suffix = ''
|
||||
while n > 0:
|
||||
n, r = divmod(n - 1, 26)
|
||||
suffix = chr(97 + r) + suffix
|
||||
return suffix
|
||||
|
||||
|
||||
def filter_data(data, good_list, special_keys=None):
|
||||
"""
|
||||
过滤字典中的键值对,保留键名符合good_list中元素的项。
|
||||
对于重复的键名,添加后缀-a, -b, 等以确保唯一性。
|
||||
对于特殊键,使用“父键的键”格式命名。
|
||||
|
||||
参数:
|
||||
- data (dict): 输入的嵌套字典。
|
||||
- good_list (list): 包含需要匹配的键名的列表。
|
||||
- special_keys (list): 需要特殊处理的键名列表。
|
||||
|
||||
返回:
|
||||
- dict: 筛选后的字典,包含符合条件的键值对。
|
||||
"""
|
||||
if special_keys is None:
|
||||
special_keys = []
|
||||
|
||||
# 编译正则表达式模式,匹配good_list中的元素,允许后面跟随“-数字”
|
||||
patterns = [re.compile(r'^' + re.escape(g) + r'(?:-\d+)?$') for g in good_list]
|
||||
|
||||
# 第一遍遍历:统计每个键名出现的次数(排除特殊键)
|
||||
key_counter = defaultdict(int)
|
||||
for top_key, nested_dict in data.items():
|
||||
for inner_key in nested_dict.keys():
|
||||
if inner_key in special_keys:
|
||||
continue
|
||||
if any(pattern.match(inner_key) for pattern in patterns):
|
||||
key_counter[inner_key] += 1
|
||||
|
||||
# 初始化用于跟踪每个重复键当前使用的后缀编号
|
||||
suffix_map = {key: 0 for key, count in key_counter.items() if count > 1}
|
||||
|
||||
def get_suffix_label(key):
|
||||
"""
|
||||
根据当前计数获取字母后缀,并更新suffix_map。
|
||||
"""
|
||||
suffix_map[key] += 1
|
||||
return get_suffix(suffix_map[key])
|
||||
|
||||
# 第二遍遍历:根据统计结果添加后缀或特殊命名
|
||||
filtered_data = {}
|
||||
|
||||
for top_key, nested_dict in data.items():
|
||||
for inner_key, values in nested_dict.items():
|
||||
if any(pattern.match(inner_key) for pattern in patterns):
|
||||
if inner_key in special_keys:
|
||||
# 对于特殊键,使用“父键的键”命名
|
||||
new_key = f"{top_key}的{inner_key}"
|
||||
else:
|
||||
if key_counter[inner_key] > 1:
|
||||
# 对于重复键,添加后缀
|
||||
suffix = get_suffix_label(inner_key)
|
||||
new_key = f"{inner_key}-{suffix}"
|
||||
else:
|
||||
new_key = inner_key
|
||||
filtered_data[new_key] = values
|
||||
|
||||
return filtered_data
|
||||
|
||||
|
||||
# 示例用法
|
||||
data={
|
||||
"1200万高清枪机": {
|
||||
"1200万高清枪机": []
|
||||
},
|
||||
"监控立杆-1": {
|
||||
"监控立杆-1": [
|
||||
"高 4.5 米, 横臂根据道路实际情况确定, 优质 Q235 钢管具 有强抗风坚固耐用安装简便的特点, 热镀锌, 表面防静电 喷塑处理,含开挖、地笼基础 、回填 、接地及辅材(线缆)"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-1": {
|
||||
"室外防水设备箱-1": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"补光灯-1": {
|
||||
"补光灯-1": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"电源线": {
|
||||
"电源线": [
|
||||
"1. 摄像机电源线规格: RVV -2*1.0(阻水)"
|
||||
]
|
||||
},
|
||||
"网线": {
|
||||
"网线": [
|
||||
"室外超五类屏蔽网线"
|
||||
]
|
||||
},
|
||||
"防雷器": {
|
||||
"防雷器": [
|
||||
"电源 、 网络二合一等电位防雷, 电源通道: 标称放电电流 为 20KA(8/20us), 最大放电电流为 4 0KA(8/20us; 高清网络 信号通道: 标称放电电流为 5KA(8/20us), 最大放电电流为 10KA(8/20us"
|
||||
]
|
||||
},
|
||||
"设备箱插板": {
|
||||
"设备箱插板": [
|
||||
"3 插位插板"
|
||||
]
|
||||
},
|
||||
"微卡口/智慧监控": {
|
||||
"微卡口/智慧监控": [
|
||||
"1) 水平分辨力 1000 TVL ,传感器类型: 彩色 CMOS , 尺寸≥ 1/1.9\";",
|
||||
"2) 相机自带 led 补光灯, 支持环境自适应开启功能。",
|
||||
"3) 图片上可叠加 OSD 黑边, OSD 像素 0~1024Pixel 可调",
|
||||
"4) 2 个 100/1000M 以太网口;1 个 BNC 接口;4 个 RS232, 2 个 RS485, 1 个 SDTY 卡插槽; 1 个 5V 电源输出; 8 路 I/O 输入; 1 路报警输入接口, 2 路报警输出接口; 1 个外同步 输入接口;7 个闪光灯输出接口;1 个 reset 接口;2 路 USB 接口",
|
||||
"5) 彩色模式: ≤0.001 lx (应能分辨反射式视频矩阵测试卡 种彩色色块) ,黑白模式: ≤0.0001 lx (应能分辨反射式视 频分辨率测试卡种圆形轮廓)",
|
||||
"6) 视频压缩标准检查: H.265; H.264; M JPEG",
|
||||
"7) 支持 P-iris 自动光圈镜头",
|
||||
"8) 速度检测误差白天≤5%, 晚上≤5%"
|
||||
]
|
||||
},
|
||||
"监控立杆-2": {
|
||||
"监控立杆-2": [
|
||||
"高 4.5 米, 横臂根据道路实际情况确定, 优质 Q235 钢管具 有强抗风坚固耐用安装简便的特点, 热镀锌, 表面防静电 喷塑处理,含开挖、地笼基础 、回填 、接地及辅材(线缆)"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-2": {
|
||||
"室外防水设备箱-2": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"补光灯-2": {
|
||||
"补光灯-2": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"枪球联动型摄像机": {
|
||||
"枪球联动型摄像机": [
|
||||
"200 万+200 万像素, 星光级网络摄像机",
|
||||
"支持人脸/人体自动检测并抓拍",
|
||||
"定点相机: 支持 1920 × 1080@60fps, 星光级超低照度, 0.001Lux/F1.0 (彩色 ), 0.0005Lux/F1.0 (黑白 )",
|
||||
"动点相机: 支持 1920 × 1080@60fps, 星光级超低照度, 0.002Lux/F1.6(彩色), 0.000 2Lux/F1.6(黑白 )",
|
||||
"不低于 10 倍光学变倍, 16 倍数字变倍",
|
||||
"支持宽动态 、透雾、 强光抑制 、 电子防抖",
|
||||
"H.265/H.264/MJ PEG",
|
||||
"支持 128GB Micro SD 卡",
|
||||
"电源: DC12V",
|
||||
"支持防雷 、 防浪涌 、防突波, IP66 防护等级"
|
||||
]
|
||||
},
|
||||
"200万像素人脸抓拍机": {
|
||||
"200万像素人脸抓拍机": [
|
||||
"200 万 像素, 1/1.8\" CMOS 宽动态人脸抓 拍摄像机;",
|
||||
"最低照度彩色:0.001Lux, 黑白 0.000 1Lux ,0 Lux with LED;",
|
||||
"快门 1 秒至 1/100,000 秒;",
|
||||
"最大焦距不低于 32mm,倍率不低于 4 倍;",
|
||||
"宽动态范围 140dB;",
|
||||
"压缩标准 H.265/H.264/MJPEG;",
|
||||
"支持背光补偿, 透雾, 电子 防抖;",
|
||||
"支持智能报警, 包括移动侦测,遮挡报警, 网线 断, IP 地址冲突, 存储器满,存储器错;",
|
||||
"支持对运动人脸进行检测 、跟踪 、抓 拍 、评分 、筛选, 输出最优的人脸抓图;",
|
||||
"工作温度和湿度 -30℃~60℃,湿度小于 95%(无凝结);",
|
||||
"防护等级 IP66;",
|
||||
"补光 距离 50 米。"
|
||||
]
|
||||
},
|
||||
"600万像素人脸抓拍机": {
|
||||
"600万像素人脸抓拍机": [
|
||||
"600 万 像素, 1/1.8\" CMOS 宽动态人 脸抓拍摄像机;",
|
||||
"最低照度彩色:0.001Lux, 黑白 0.0001Lux ,0 Lux with LED;",
|
||||
"快门 1 秒至 1/100,000 秒;",
|
||||
"最大焦距不低于 56mm,倍率不 低于 4 倍;",
|
||||
"压缩标准 H.265/H.264/MJPEG;",
|
||||
"支持背光补偿, 透雾, 电子防抖;",
|
||||
"支持智能报警,包括移动侦测,遮挡报警, 网线断, IP 地址冲突,存储器满,存储器错;",
|
||||
"支持对运动人脸 进行检测 、跟踪 、抓拍 、评分 、筛选, 输出最优的人脸抓 图;",
|
||||
"工作温度和湿度 -30℃~60℃,湿度小 于 95%(无凝结);",
|
||||
"防护等级 IP66;",
|
||||
"补光距离 50 米。"
|
||||
]
|
||||
},
|
||||
"枪机支架": {
|
||||
"枪机支架": [
|
||||
"壁装支架/海康白/铝合金/尺寸 88 × 116.6 ×297.3mm"
|
||||
]
|
||||
},
|
||||
"枪机电源": {
|
||||
"枪机电源": [
|
||||
"12V/1A 圆头、两端带线式, 国标,输入线长 500mm,输出线长 1000mm"
|
||||
]
|
||||
},
|
||||
"监控立杆-3": {
|
||||
"监控立杆-3": [
|
||||
"H6.5*L12, 高 6.5 米横臂 12 米, 喷塑 、镀锌 (含 杆件布线 、地笼 M32-8-1500 安装) 3.基础开挖:杆件基础坑开挖, 规格 1600*16 00*1800 4.渣土清运:现场渣土清运, 运距 10km 以内 5.基础浇灌:杆件基础浇灌养护, C25 及以上混凝土 6.镀锌扁钢接地"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-3": {
|
||||
"室外防水设备箱-3": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"补光灯-3": {
|
||||
"补光灯-3": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"监控摄像设备(800万180度鹰眼)": {
|
||||
"监控摄像设备(800万180度鹰眼)": [
|
||||
"1.名称:800 万 180 度鹰眼(含支架) 800 万 180 °AR 球型鹰眼;S 系列 800 万 180 °全景 一体式 网络高清摄像机,全景摄像机有 4 个 1/1.8\" 2MP Progressive Scan CMOS, 最高分辨率及帧率可达 4096 × 1800 @30fps, 星光级超低照度, 0.005Lux/F2.2(彩色 ), 0.0005Lux/F2.2 (黑白 );",
|
||||
"特写摄像机采用 1/1.8\" 2MP Progressive Scan CMOS, 最高分辨率及帧率可达 1920 × 1080@30fps, 水平 360 °连续旋转,垂直-15 ° -90 °(自动翻转 ), 星光级超 低照度,0.002Lux/F1.5(彩色 ) , 0.0002Lux/F1.5(黑白 ), 200m 红外照射距离, 37 倍光学变倍, 16 倍数字变倍;",
|
||||
"支持区域入侵 、越界 、进入区域 、离开区域事件侦测功能;",
|
||||
"系统支持检测直径 300 米 180 °半圆形范围内运动目标, 可同时检测 30 个目标;",
|
||||
"系统支持点击联动功能 、目标自动 跟踪功能 、手动跟踪功能;",
|
||||
"支持强光抑制 、3D 数字降噪;",
|
||||
"系统支持基于交通平台8600 实现交通云图立体防控;",
|
||||
"系统支持在摄像机的实时视频画面中添加最多 500 个 AR 标签, 且可实现标签与标签联动的功能;",
|
||||
"系统内置 7 路报警输入、 2 路报警输出、1 路音频输入、1 路音频输出,支持光口(FC) + 电口(RJ-45)网络接口设计,采用一体化设计,可快捷安装;",
|
||||
"H.265/H.264/MJPEG;",
|
||||
"支持防雷 、防浪涌 、防突波, IP66 防护等级。"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-4": {
|
||||
"室外防水设备箱-4": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"综合管理平台软件": {
|
||||
"综合管理平台软件": [
|
||||
"见配置要求清单"
|
||||
]
|
||||
},
|
||||
"人脸大数据综合应用软件": {
|
||||
"人脸大数据综合应用软件": []
|
||||
},
|
||||
"中心管理服务器": {
|
||||
"中心管理服务器": [
|
||||
"E5-2620 V4(8 核 2.1GHz) ×2/16GB DDR4 ×2/300G SAS × 2/SAS_HBA/DVD/1GbE ×4/冗电/2U"
|
||||
]
|
||||
},
|
||||
"人脸接入服务器": {
|
||||
"人脸接入服务器": [
|
||||
"E5-2620 V4(8 核 2.1GHz) ×2/16GB DDR4 ×2/300G SAS × 2/SAS_HBA/DVD/1GbE ×4/冗电/2U"
|
||||
]
|
||||
},
|
||||
"人脸大数据服务器": {
|
||||
"人脸大数据服务器": [
|
||||
"支持 3000W 静态库或 8 亿抓拍库",
|
||||
"支持 3000W 数据内存加速检索,内存加速检索响应时间小于 6 秒",
|
||||
"抓拍库非内存加速数据单天检索小于 40 秒",
|
||||
"CPU: 2*E5-2630 V3 , 2*8=1 6 核",
|
||||
"内存: 8*32G=256G",
|
||||
"硬盘: 1*240G SSD, 2*4T SATA, 6*48 0G SSD"
|
||||
]
|
||||
},
|
||||
"人脸云分析服务器": {
|
||||
"人脸云分析服务器": [
|
||||
"19 英寸 1U 标准机箱, 具有 1+1 冗余电源;",
|
||||
"集成 16 颗 GPU 芯片;",
|
||||
"4 个千兆自适应网口,1 个 VGA 接口、4 个 USB 3.0 接口和 2 个 USB 2.0 接口;",
|
||||
"人脸图片处理能力: 80 张/秒;",
|
||||
"支持 30W 黑名单, 最多支持 16 个库;",
|
||||
"支持 1V1 比对。"
|
||||
]
|
||||
},
|
||||
"视频结构化服务器": {
|
||||
"视频结构化服务器": [
|
||||
"见配置要求清单"
|
||||
]
|
||||
},
|
||||
"车辆识别应用软件": {
|
||||
"车辆识别应用软件": [
|
||||
"对新建车辆识别抓拍机数据图片进行接入, 后端进行二次识别分析 。 同时具有车辆查询 、轨迹分析 、 区域碰撞 、 同行分析 、套牌分析 、落脚点分析等丰富的技战法应用。"
|
||||
]
|
||||
},
|
||||
"车辆大数据应用服务器": {
|
||||
"车辆大数据应用服务器": [
|
||||
"E5-2620 V4(8 核 2.1GHz) ×2/16GB DDR4 ×2/300G SAS × 2/SAS_HBA/DVD/1GbE ×4/冗电/2U"
|
||||
]
|
||||
},
|
||||
"车辆云分析服务器": {
|
||||
"车辆云分析服务器": [
|
||||
"对前端抓拍车辆图片进行二次识别, 车辆建模。"
|
||||
]
|
||||
},
|
||||
"车辆大数据服务器": {
|
||||
"车辆大数据服务器": [
|
||||
"E5-2620 V4(8 核 2.1GHz) ×2/16GB DDR4 ×2/300G SAS × 2/SAS_HBA/DVD/1GbE ×4/冗电/2U"
|
||||
]
|
||||
},
|
||||
"人脸结构化服务器": {
|
||||
"人脸结构化服务器": [
|
||||
"4U 机架式设备, 具有 2+2 冗余电源;",
|
||||
"8 张 Tesla P4 卡;",
|
||||
"2 颗 Intel E5-2680 V4( 14 核 2.4Ghz ), 128GB DDR4, 1 个 150GB SSD;",
|
||||
"8 个 2.5 英寸 SATA 3.0 接口 ,支持热插拔,支持 RAID 0, 1, 5, 10",
|
||||
"4 个 USB3.0 接口, 1 个 VGA 接口, 2 个千兆自适应网络接口"
|
||||
]
|
||||
},
|
||||
"人脸、人体、车辆结构化分析算法": {
|
||||
"人脸、人体、车辆结构化分析算法": [
|
||||
"配合 GPU 卡服务器使用"
|
||||
]
|
||||
},
|
||||
"云存储管理系统": {
|
||||
"系统功能": [
|
||||
"1、响应上层平台业务请求,对外提供业务响应接口;",
|
||||
"2、负责录像计划的管理,向视频云存储接入软件下达录像计划;",
|
||||
"3、负责存储资源管理,向业务应用分配存储空间;",
|
||||
"4、维护系统运转,统一调度、协调云存储系统的运行与维护。",
|
||||
"5、具体功能:集群管理、虚拟化管理、索引管理、存储资源管理、存储策略管理、存储设备管理等。"
|
||||
]
|
||||
},
|
||||
"云存储运维系统": {
|
||||
"系统功能": [
|
||||
"集成视频云存储的运维系统, 可进行软件 、硬件 、系统的运维。"
|
||||
]
|
||||
},
|
||||
"云存储管理服务器": {
|
||||
"云存储管理服务器": [
|
||||
"云存储系统管理服务器:E5-2620 V3(6 核 2.4GHz) × 2/16GB DDR4 X2/480G SSD ×3+150G SSD / 3008 /1GbE ×2/冗电/2U",
|
||||
"操作系统:需支持 Centos7-64bit"
|
||||
]
|
||||
},
|
||||
"云存储运维服务器": {
|
||||
"云存储运维服务器": [
|
||||
"云存储系统专用运维节点,双系统, RAID 1,6 核多线程双 CPU,云存储定制 CentOS 64 位操作系统, 2U 机箱"
|
||||
]
|
||||
},
|
||||
"流媒体分发服务器": {
|
||||
"流媒体分发服务器": [
|
||||
"E5-2640 V4(10 核 2.4GHz ) ×2/16GB DDR4 ×2/300GB SAS × 2/SAS3008/DVD/1GbE ×4/冗电/导轨/2U/Windows Server 2008 R2 简体中文标准版激活码",
|
||||
"1、电源: 高效能 550W 铂金 1+1 冗余电源;",
|
||||
"2 、电源电压 200-240V/50Hz;",
|
||||
"3 、机箱尺寸:87.8mm(高)×448mm(宽) ×794.4mm(深);",
|
||||
"4、重量 最大 35 千克 (不含导轨 );"
|
||||
]
|
||||
},
|
||||
"高速图片云存储节点": {
|
||||
"高速图片云存储节点": [
|
||||
"8U 标准机架式 48 盘位;双 64 位多核处理器; 16GB 缓存; 冗余电源; 支持 SATA 硬盘; 4 个千兆网口; 1 个系统 SSD 盘; 1 个数据 SSD 盘; 支持外接 SAS 扩展柜;支持人脸 图片 的即存即取。"
|
||||
]
|
||||
},
|
||||
"视频云存储节点": {
|
||||
"视频云存储节点": [
|
||||
"见配置要求清单"
|
||||
]
|
||||
},
|
||||
"硬盘": {
|
||||
"硬盘": [
|
||||
"3.5 英寸 4000G 7200 128M SATA3"
|
||||
]
|
||||
},
|
||||
"校时服务器": {
|
||||
"校时服务器": [
|
||||
"1.名称:校时服务器",
|
||||
"2.类别:根据授时信号的强度,支持 GPS/北斗/CDMA 自动切换校时, 产品标配是不带 CDMA 模块的",
|
||||
"守时能力: 精度 24 小时<28us",
|
||||
"授时容量: 单端口≥7000 次/秒",
|
||||
"高授时精度 : < 5 us",
|
||||
"授时频段: GPS 授时中心频率 1575MHz 北斗授时中心频率 2491MHz CDMA 授时中心频率 800MHz",
|
||||
"机箱尺寸: 429.4mm*237.3mm*44.5mm(设备)/ 514mm*478mm*132mm(含包装)",
|
||||
"重量: 5.05KG"
|
||||
]
|
||||
},
|
||||
"校时服务器天线": {
|
||||
"校时服务器天线": [
|
||||
"1.名称:校时服务器天线",
|
||||
"2.类别:内导体材料: 裸铜丝; 结构: 1/1.40 ±0.02mm; 标称截面: 1.54 mm2",
|
||||
"绝缘材料: 聚乙烯; 平均厚度: 1.7mm; 外导体: 材料铜丝"
|
||||
]
|
||||
},
|
||||
"室内全彩显示屏": {
|
||||
"室内全彩显示屏": [
|
||||
"1) 小间距 LED 全彩显示屏",
|
||||
"2) 像素间距: 1.27",
|
||||
"3) 封装类型: 亿光",
|
||||
"4) 屏幕宽高比: 16:9, 压铸铝材质",
|
||||
"5) 像素结构: LED 表贴三合一",
|
||||
"6)单元分辨率: 480 ×270, 单元尺寸: 609.92mm( W ) × 343.08mm( H) ×75mm( D )",
|
||||
"7) 像素密度: 619350 点/㎡",
|
||||
"8)光学参数:显示屏亮度≥1200nits,色温 25 00K—10000K 可调, 水平 、垂直视角 160 ° , 推荐视距≥2m, 亮度均匀 性≥97%, 色度均匀性 ±0.003 Cx , Cy 之内 , 最大对比度≥ 8000:1",
|
||||
"9) 处理深度: 16bits, 灰度等级: 65536Level",
|
||||
"10) 电气参数: 峰值功耗 800W/㎡, 平均功耗 300W/㎡, 供电要求 110~264VAC ± 15%",
|
||||
"11) 寿命: ≥ 10 万小时, 工作温度范围-10—45℃ , 存储 温度范围-20—60℃ , 工作湿度范围(RH)无结露 10-90%, 存储湿度范围( RH) 无结露 10-90%",
|
||||
"12)功能特性: 支持任意方向、任意尺寸 、任意造型拼接, 画面均匀一致, 无黑线, 实现真正无缝拼接"
|
||||
]
|
||||
},
|
||||
"LED全彩屏发送卡": {
|
||||
"LED全彩屏发送卡": [
|
||||
"4 个千兆网口输出, 单个网口最大带载 65 万个像素点;",
|
||||
"带载分辨率: 2048 × 1152@60Hz 或 1920 × 1200@60Hz;",
|
||||
"DVI 、DP 、HDMI 、VGA 多信号输入, 支持信源自动检测, 无需手动切换信源;",
|
||||
"16 bit 处理深度, 低亮高灰, 真实还原图像色彩;",
|
||||
"3840Hz 高刷新率,纳秒级响应时间,视频画面更细腻流畅;",
|
||||
"支持屏幕亮度自动调整, 自适应环境光亮度(配合多功能卡 使用 );",
|
||||
"图像色温调节, 标准 、冷 、暖三色可调;"
|
||||
]
|
||||
},
|
||||
"LED屏支架": {
|
||||
"LED屏支架": [
|
||||
"1) 一般用于箱体产品",
|
||||
"2) 落地安装",
|
||||
"3) 屏表面离后墙 70cm",
|
||||
"4) 地面需考虑承重"
|
||||
]
|
||||
},
|
||||
"视频综合平台B20系列主控板": {
|
||||
"视频综合平台B20系列主控板": [
|
||||
"8U 标准机箱,满足各种规模的监控需求;标准机架式设计,运营级 ATCA 机箱系统;插拔式模块化设计,可根据需求灵活扩展;5 槽位机箱,双电源适配器,单主控板;业务模块支持热插拔 、双电源冗余 、智能风扇自动调温,确保系统稳定可靠;双高速无阻塞背板设计,满足大容量视频数据高速交换的需求。",
|
||||
"4 个 DVI 视频输入接口;接收数字视频信号输入;支持 1080P 编码;1 个 DB15 转 4 路音频输入;输入分辨率 1024 ×768@60Hz 、 1280 × 1024@60Hz 、 1280 ×800@60Hz 、 1366 ×768@60Hz 、 1440 ×900@60Hz 、 1680 × 1050@60Hz、1280 ×960@60Hz、1600 × 1200@60Hz、1280 ×720P@50Hz 、 1280 ×720P@60Hz 、 1920 × 1080I@50Hz 、 1920 × 1080I@60Hz 、 1920 × 1080P@50Hz 、 1 920 × 1080P@60Hz;音频输入口: 4 路音频输入, 1 个 DB15 转 BNC 接口;编码标准:标准 H.264;编码能力:4 路,支持的编码分辨率为:1080P/720P/4CIF/CIF/ QCIF;",
|
||||
"8 路 HDMI 显示接口输出,奇数口支持 4K 输出;支持 16 路 800W/64 路 1080P/128 路 720P/256 路 4CIF 解码 H.264/H.265 解码;支持大屏拼接漫游;1 个 DB15 转 8 路音频输出;"
|
||||
]
|
||||
},
|
||||
"配电柜": {
|
||||
"配电柜": [
|
||||
"1) 类型: 30KW 配电柜",
|
||||
"2) 控制: 欧姆龙 PLC 控制器, 网络远程控制",
|
||||
"3) 元器件: 德力西断路器, 施耐德接触器",
|
||||
"4) 输入电压: 380V",
|
||||
"5) 输出电压: 220V",
|
||||
"6) 输出回路: 双三相回路, 6 个单相回路",
|
||||
"7) 尺寸: 450*600*200"
|
||||
]
|
||||
},
|
||||
"控制软件": {
|
||||
"控制软件": []
|
||||
},
|
||||
"线缆": {
|
||||
"线缆": [
|
||||
"HAMI10 米",
|
||||
"ZR -RVV 2.5 平方电源线",
|
||||
"超六类屏蔽网线"
|
||||
]
|
||||
},
|
||||
"ZR-RVV2.5平方电源线": {
|
||||
"ZR-RVV2.5平方电源线": []
|
||||
},
|
||||
"超六类屏蔽网线": {
|
||||
"超六类屏蔽网线": []
|
||||
},
|
||||
"网络交换机": {
|
||||
"网络交换机": [
|
||||
"8 百兆电口+1 千兆电口, 二层非网管, 桌面式"
|
||||
]
|
||||
},
|
||||
"热成像云台(640*512)": {
|
||||
"热成像云台(640*512)": [
|
||||
"1. 具有多码流功能, 分辨率≥640x512。",
|
||||
"2. 具有 8 倍数字变倍功能。",
|
||||
"3. 焦距为 50mm, 固定光圈 F1.0。",
|
||||
"4. 自带测温功能, 画面显示场景温度范围。",
|
||||
"5. 能够显示当前场景的最高和最低温度值, 并能在当前场景中标注出最高温度值及其位置。",
|
||||
"6. 拥有 14 中伪彩可供选择。",
|
||||
"7. 支持水平 360 °连续转动 、俯仰角-90 °~30 °转动 、横滚角-45 °~45 °转动。",
|
||||
"8. 相机支持内置 MicroSD 卡, 容量最大 128GB。"
|
||||
]
|
||||
},
|
||||
"高清解码器": {
|
||||
"高清解码器": [
|
||||
"1 路 HDMI 、VGA 、BNC 三种输出接口",
|
||||
"支持 H.265、H.264、MPEG4、MJPEG 等主流的编码格式",
|
||||
"支持 PS 、RTP 、TS 、ES 等主流的封装格式",
|
||||
"支持 G.722、G.711A、G.726、G.711U、MPEG2-L2、AAC 音频格式的解码",
|
||||
"支持 2 路 1200W,或 4 路 800W,或 6 路 500W,或 10 路 300W,或 16 路 1080P 及以下分辨率同时实时解码",
|
||||
"支持 1/4/6/8/9/12/16 画面分割",
|
||||
"支持 1 个 RJ45 网络接口",
|
||||
"1 路音频输出 、 1 路对讲输入 、 1 路对讲输出",
|
||||
"一个标准 232 接口 (RJ 45) 、一个标准 485 接口",
|
||||
"8 路报警输入, 8 路报警输出"
|
||||
]
|
||||
},
|
||||
"高清数字编码器": {
|
||||
"高清数字编码器": [
|
||||
"支持 1 路 HDMI 或 1 路 VGA 视频输入, 自适应接入;",
|
||||
"1 路音频输入;",
|
||||
"支持 1 路 VGA 环通输出;",
|
||||
"支持 H.264 编码, 1080P 、720P 等高清分辨率 实时编码;",
|
||||
"1 个 10M/ 100M 自适应以太网口;",
|
||||
"支持 1 个 microSD 存储卡插槽, microSD 最 大支持 128G;"
|
||||
]
|
||||
},
|
||||
"4G图传服务器": {
|
||||
"4G图传服务器": [
|
||||
"E5-2620 V4(8 核 2.1GHz) × 1/16GB DDR4 /1TB SATA × 2/SAS_HBA/DVD/1GbE ×4/冗电/2U",
|
||||
"1、电源:高效能 550W 铂金 1+1 冗余电源;",
|
||||
"2、电源电压 200-240V/50Hz;",
|
||||
"3、机箱尺寸:87.8mm(高)×448mm(宽)×794.4mm(深);",
|
||||
"4、重量 最大 35 千克;"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-1": {
|
||||
"监控摄像设备-1": [
|
||||
"1.名称:200 万高清枪机",
|
||||
"200 万星光级 1/1.8 ”CMOS 超宽动态 ICR 日夜型枪型网络摄像机; 传感器类型: 1/1.8 ” Progressive Scan CMOS; 最 低照度彩色 :0.001 lx (AGC 开,RJ45 输出),黑白:0.0001 lx (AGC 开, RJ45 输出); 快门: 1/3 秒至 1/100,000 秒; 宽动 态范围: 120dB; 视频压缩标准: H.265/H .264/MJPEG; 帧 率: 50Hz: 50fps(1920 × 1080,1280 ×960,1280 ×720); 支持 Micro SD/SDHC /SDXC 卡(128G)断网本地存储;感兴趣区域 ROI 支持三码流分别设置 4 个固定区域或动态跟踪 ;具备 人脸检测 、 区域入侵检测 、越界检测 、徘徊 、人员聚集、 场景变更 、虚焦检测 、音频异常检测等功能; 支持车辆捕 获 、车牌识别功能; 支持人脸侦测, 过线计数功能; 工作 温度和湿度: -30℃~60℃,湿度小于 95%(无凝结); 电源供 应 :AC24V / DC12V / PoE(802.3af);功耗: 6W MAX(当 ICR 切换时,9W MAX)"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-2": {
|
||||
"监控摄像设备-2": [
|
||||
"1.名称:微卡口/智慧监控",
|
||||
"水平分辨力 1000 TVL ,传感器类型: 彩色 CMOS , 尺寸≥ 1/1.9\"; 2) 相机自带 led 补光灯, 支持环境自适应开启功能。 3) 图片上可叠加 OSD 黑边, OSD 像素 0~1024Pixel 可调 4) 2 个 100/1000M 以太网口;1 个 BNC 接口;4 个 RS232, 2 个 RS485, 1 个 SDTY 卡插槽; 1 个 5V 电源输出; 8 路 I/O 输入; 1 路报警输入接口, 2 路报警输出接口; 1 个外同步 输入接口;7 个闪光灯输出接口;1 个 reset 接口;2 路 USB 接口 5) 彩色模式: ≤0.001 lx (应能分辨反射式视频矩阵测试卡 种彩色色块) ,黑白模式: ≤0.0001 lx (应能分辨反射式视 频分辨率测试卡种圆形轮廓) 6) 视频压缩标准检查: H.265; H.264; M JPEG 7) 支持 P-iris 自动光圈镜头 8) 速度检测误差白天≤5%, 晚上≤5%"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-3": {
|
||||
"监控摄像设备-3": [
|
||||
"1.名称:枪球联动型摄像 机",
|
||||
"200 万+200 万像素, 星光级网络摄像机; 支持人脸/人体自 动检测并抓拍; 定点相机: 支持 1920 × 1080@60fps, 星光 级超低照度, 0.001Lux/F1.0 (彩色 ), 0.0005Lux/F1.0 (黑 白 ); 动点相机: 支持 1920 × 1080@60fps, 星光级超低照 度, 0.002Lux/F1.6(彩色), 0.000 2Lux/F1.6(黑白 ); 不 低于 10 倍光学变倍, 16 倍数字变倍; 支持宽动态 、透雾、 强光抑制 、 电子防抖; H.265/H.264/MJ PEG; 支持 128GB Micro SD 卡; 电源: DC12V; 支持防雷 、 防浪涌 、防突波, IP66 防护等级"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-4": {
|
||||
"监控摄像设备-4": [
|
||||
"1.名称:200 万像素人脸抓 拍机",
|
||||
"200 万 像素, 1/1.8\" CMOS 宽动态人脸抓 拍摄像机; 最低照度彩色:0.001Lux, 黑白 0.000 1Lux ,0 Lux with LED; 快门 1 秒至 1/100,000 秒;最大焦距不低于 32m m,倍率不 低于 4 倍; 宽动态范围 140dB; 压缩标准 H.265/H.264/MJPEG; 支持背光补偿, 透雾, 电子 防抖; 支 持智能报警, 包括移动侦测,遮挡报警, 网线 断, IP 地址冲突, 存储器满,存储器错; 支持对运动人脸进行检测 、跟踪 、抓 拍 、评分 、筛选, 输出最优的人脸抓图; 工作温度和湿度 -30℃~60℃,湿度小于 95%(无凝结); 防护等级 IP66; 补光 距离 50 米"
|
||||
]
|
||||
},
|
||||
"物位检测仪表": {
|
||||
"物位检测仪表": [
|
||||
"1.名称:窄波雷达",
|
||||
"2.型号:窄波雷达, 测速范围 10km/h~250km/h"
|
||||
]
|
||||
},
|
||||
"视频控制设备-1": {
|
||||
"视频控制设备-1": [
|
||||
"1.名称:智能终端",
|
||||
"2.类别:可接入 8 路高清摄像机(支持视频和图片同时接入)"
|
||||
]
|
||||
},
|
||||
"存储设备": {
|
||||
"存储设备": [
|
||||
"1.名称:硬盘",
|
||||
"2.类别:4 T SATA 企业级硬盘"
|
||||
]
|
||||
},
|
||||
"交换机": {
|
||||
"交换机": [
|
||||
"1.名称:交换机",
|
||||
"2.功能:8 个百兆电口"
|
||||
]
|
||||
},
|
||||
"小电器": {
|
||||
"小电器": [
|
||||
"1.名称:稳压器",
|
||||
"2.型号:稳压器≥1 KVA"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-5": {
|
||||
"监控摄像设备-5": [
|
||||
"1.名称:600 万像素人脸抓 拍机",
|
||||
"600 万 像素, 1/1.8\" CMOS 宽动态人 脸抓拍摄像机; 最低照度彩色:0.001Lux, 黑白 0.0001Lux ,0 Lux with LED; 快门 1 秒至 1/100,000 秒;最大焦距不低于 56mm,倍率不 低于 4 倍; 压缩标准 H.265/H.264/MJPEG; 支持背光补偿, 透雾, 电子防抖;支持智能报警,包括移动侦测,遮挡报警, 网线断, IP 地址冲突,存储器满,存储器错; 支持对运动人脸 进行检测 、跟踪 、抓拍 、评分 、筛选, 输出最优的人脸抓 图; 工作温度和湿度 -30℃~60℃,湿度小 于 95%(无凝结); 防护等级 IP66; 补光距离 50 米"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-6": {
|
||||
"监控摄像设备-6": [
|
||||
"1.名称:800 万 180 度鹰 眼(含支架)",
|
||||
"800 万 180 °AR 球型鹰眼;S 系列 800 万 180 °全景 一体式 网络高清摄像机,全景摄像机有 4 个 1/1.8\" 2MP Progressive Scan CMOS, 最高分辨率及帧率可达 4096 × 1800 @30fps, 星光级超低照度, 0.005Lux/F2.2(彩色 ), 0.0005Lux/F2.2 (黑白 ); 特写摄像机采用 1/1.8\" 2MP Progressive Scan CMOS, 最高分辨率及帧率可达 1920 × 1080@30fps, 水平 360 °连续旋转,垂直-15 ° -90 °(自动翻转 ), 星光级超 低照度,0.002Lux/F1.5(彩色 ) , 0.0002Lux/F1.5(黑白 ), 200m 红外照射距离, 37 倍光学变倍, 16 倍数字变倍; 支 持区域入侵 、越界 、进入区域 、离开区域事件侦测功能; 系统支持检测直径 300 米 180 °半圆形范围 内运动目标, 可同时检测 30 个目标;系统支持点击联动功能 、目 标自动 跟踪功能 、手动跟踪功能; 支持强光抑制 、3D 数字降噪; 系统支持基于交通平台8600 实现交通云图立体防控; 系统支持在摄像机的实时视频画面中添加最多 500 个 AR 标签, 且可实现标签与标签联动的功能;系统内置 7 路报警输入、 2 路报警输出、1 路音频输入、1 路音频输出,支持光口(FC) + 电口(RJ-45)网络接口设计,采用一体化设计,可快捷安装; H.265/H.264/MJPEG; 支持防雷 、防浪涌 、防突波, IP66 防护等级"
|
||||
]
|
||||
},
|
||||
"监控立杆-4": {
|
||||
"监控立杆-4": [
|
||||
"F 型杆, 高 8 米横臂 5 米, 喷塑 、镀锌 。 ( 含杆件 布线 、地笼 M32-8-1500 安装) 3.基础开挖:杆件基础坑开挖, 规格 2000*2000*2000 4.渣土清运:现场渣土清运, 运距 10km 以内 5.基础浇灌:杆件基础浇灌养护, C25 及以上混凝土"
|
||||
]
|
||||
},
|
||||
"配线-1": {
|
||||
"配线-1": [
|
||||
"1.配线形式: RVV -3*2.5 平方电源线"
|
||||
]
|
||||
},
|
||||
"双绞线缆(网线)": {
|
||||
"双绞线缆(网线)": [
|
||||
"1.名称:室外 6 类线"
|
||||
]
|
||||
},
|
||||
"配线(控制线)": {
|
||||
"配线(控制线)": [
|
||||
"1.配线形式: RVVP 4*1.0"
|
||||
]
|
||||
},
|
||||
"配线(接地线)": {
|
||||
"配线(接地线)": [
|
||||
"1.接地线: BVR 16"
|
||||
]
|
||||
},
|
||||
"人(手)孔砌筑-1": {
|
||||
"人(手)孔砌筑-1": [
|
||||
"1.名称:400*400 检查井"
|
||||
]
|
||||
},
|
||||
"配管": {
|
||||
"配管": [
|
||||
"1.名称:电气配管",
|
||||
"2.材质: PE",
|
||||
"3.规格:DN100"
|
||||
]
|
||||
},
|
||||
"安全防范分系统调试": {
|
||||
"安全防范分系统调试": [
|
||||
"1.名称:摄像头调试"
|
||||
]
|
||||
},
|
||||
"电表报装": {
|
||||
"电表报装": [
|
||||
"报装费, 不含电费"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-7": {
|
||||
"监控摄像设备-7": [
|
||||
"1.名称:区间测速一体抓拍单元(含区间测速摄像机高清镜头 、 防护罩 、支架)",
|
||||
"2.类别:区间测速化一体抓拍单元,900W 像素,视频分辨率 4096(H) ×2160(V), 帧率 1~25fps。 3.区间测速摄像机高清摄像头: 定焦高清镜头, 焦距 根据 现场情况选配 25-35MM。 4.安装支架及底托: 固定抓拍单元 、补光灯等设备"
|
||||
]
|
||||
},
|
||||
"视频系统设备": {
|
||||
"视频系统设备": [
|
||||
"1) 像素间距: 10mm",
|
||||
"2) LED 像素组成:2R1G",
|
||||
"3) 单元板尺寸: 256mm*128mm",
|
||||
"4) 像素密度: 3906 pixels/m2",
|
||||
"5) 保护电路:动态扫描方式",
|
||||
"6) 驱动方式: 静态恒流驱动",
|
||||
"7) 输入功率 (最大值) :800W/m2",
|
||||
"8) 显示屏亮度 :≥4000CD/m2"
|
||||
]
|
||||
},
|
||||
"监控立杆-5": {
|
||||
"监控立杆-5": []
|
||||
},
|
||||
"人(手)孔砌筑-2": {
|
||||
"人(手)孔砌筑-2": [
|
||||
"1.名称:400*400 检查井"
|
||||
]
|
||||
},
|
||||
"视频控制设备-2": {
|
||||
"视频控制设备-2": [
|
||||
"1.名称:信息采集发布终端",
|
||||
"2.类别:信息采集发布控制,支持文字动态显示 。网络接口: 1 个 1RJ45 10M/100M/1000M 自适应以太网口;"
|
||||
]
|
||||
},
|
||||
"配线-2": {
|
||||
"配线-2": [
|
||||
"1.配线形式: RVVP 4*1.0"
|
||||
]
|
||||
},
|
||||
"ZR-RVV2": {
|
||||
"5平方电源线": []
|
||||
},
|
||||
"监控摄像设备-8": {
|
||||
"监控摄像设备-8": [
|
||||
"1.名称:智能 LED 补光灯",
|
||||
"2.类别:车道频闪补光灯"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-9": {
|
||||
"监控摄像设备-9": [
|
||||
"1.名称:红外白爆闪灯",
|
||||
"2.类别:红外白灯一体化闪光灯 。最佳距离 20-30 米, 色温 5800k"
|
||||
]
|
||||
},
|
||||
"监控摄像设备-10": {
|
||||
"监控摄像设备-10": [
|
||||
"1.名称:高清球机",
|
||||
"2.类别:200 万高清球机, 30 倍数网络智能球机 3.球机支架:H1.5*L0.5 4.安装方式:立杆上安装"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-5": {
|
||||
"室外防水设备箱-5": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-6": {
|
||||
"室外防水设备箱-6": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"室外防水设备箱-7": {
|
||||
"室外防水设备箱-7": [
|
||||
"订制平安城市 LOGO , 表面防静电喷塑处理(室外防水, 防剪线)"
|
||||
]
|
||||
},
|
||||
"补光灯-4": {
|
||||
"补光灯-4": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"补光灯-5": {
|
||||
"补光灯-5": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"补光灯-6": {
|
||||
"补光灯-6": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"补光灯-7": {
|
||||
"补光灯-7": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"补光灯-8": {
|
||||
"补光灯-8": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"补光灯-9": {
|
||||
"补光灯-9": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"补光灯-10": {
|
||||
"补光灯-10": [
|
||||
"LED 12 个 1W 大功率 LED ; 白光色温 正白; 流明度月 2000 lm ; 光束角度 30 °(标配 ), 其它可定制; 可视距 离 100m; 功率因素 >0.95; 工 作电压 AC110-220V/AC24V/DC12V;"
|
||||
]
|
||||
},
|
||||
"配线-3": {
|
||||
"配线-3": [
|
||||
"1.配线形式: RVVP -3*6 电源线"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
good_list = [
|
||||
'监控立杆', '室外防水设备箱', '补光灯', '监控摄像设备', '视频控制设备', '配线',
|
||||
'人(手)孔砌筑', '1200万高清枪机', '电源线', '网线', '防雷器', '设备箱插板',
|
||||
'微卡口/智慧监控', '枪球联动型摄像机', '200万像素人脸抓拍机', '600万像素人脸抓拍机',
|
||||
'枪机支架', '枪机电源', '监控摄像设备(800万180度鹰眼)', '综合管理平台软件',
|
||||
'人脸大数据综合应用软件', '中心管理服务器', '人脸接入服务器', '人脸大数据服务器',
|
||||
'人脸云分析服务器', '视频结构化服务器', '车辆识别应用软件', '车辆大数据应用服务器',
|
||||
'车辆云分析服务器', '车辆大数据服务器', '人脸结构化服务器',
|
||||
'人脸、人体、车辆结构化分析算法', '系统功能', '云存储管理服务器',
|
||||
'云存储运维服务器', '流媒体分发服务器', '高速图片云存储节点', '视频云存储节点',
|
||||
'硬盘', '校时服务器', '校时服务器天线', '室内全彩显示屏', 'LED全彩屏发送卡',
|
||||
'LED屏支架', '视频综合平台B20系列主控板', '配电柜', '控制软件', '线缆',
|
||||
'ZR-RVV2.5平方电源线', '超六类屏蔽网线', '网络交换机', '热成像云台(640*512)',
|
||||
'高清解码器', '高清数字编码器', '4G图传服务器', '物位检测仪表', '存储设备',
|
||||
'交换机', '小电器', '双绞线缆(网线)', '配线(控制线)', '配线(接地线)', '配管',
|
||||
'安全防范分系统调试', '电表报装', '视频系统设备',"系统功能"
|
||||
]
|
||||
|
||||
special_keys = ['系统功能'] # 需要特殊处理的键
|
||||
|
||||
# # 调用函数并打印结果
|
||||
# filtered = filter_data(data, good_list, special_keys)
|
||||
# print(filtered)
|
||||
|
||||
# 调用函数并打印结果
|
||||
filtered = filter_data(data, good_list, special_keys)
|
||||
print(json.dumps(filtered,ensure_ascii=False,indent=4))
|
||||
|
@ -433,7 +433,7 @@ def get_technical_requirements(file_path,invalid_path):
|
||||
# 打印结果
|
||||
for question, response in results:
|
||||
technical_requirements.append(response)
|
||||
print(response)
|
||||
# print(response)
|
||||
technical_requirements_combined_res = combine_json_results(technical_requirements)
|
||||
|
||||
"""根据所有键是否已添加处理技术要求"""
|
||||
|
@ -2,101 +2,78 @@ import json
|
||||
import re
|
||||
import string
|
||||
from collections import OrderedDict
|
||||
|
||||
from collections import defaultdict
|
||||
#传输技术参数需求的时候后处理
|
||||
def extract_matching_keys(data_dict, good_list, special_keys=None):
|
||||
def get_suffix(n):
|
||||
"""
|
||||
递归遍历data_dict,查找good_list中存在的键(完全匹配或以good_list中的键开头,后跟“-数字”),并将匹配的键及其值添加到结果字典中。
|
||||
对于重复的键名,添加后缀 -a, -b, -c 等以确保唯一性。
|
||||
对于特殊键(如"系统功能"),在键名前添加其父键名和'的',例如:"交通信号的系统功能"。
|
||||
根据数字n返回对应的字母后缀。
|
||||
1 -> 'a', 2 -> 'b', ..., 26 -> 'z', 27 -> 'aa', 28 -> 'ab', ...
|
||||
"""
|
||||
suffix = ''
|
||||
while n > 0:
|
||||
n, r = divmod(n - 1, 26)
|
||||
suffix = chr(97 + r) + suffix
|
||||
return suffix
|
||||
|
||||
|
||||
def extract_matching_keys(data, good_list, special_keys=None):
|
||||
"""
|
||||
过滤字典中的键值对,保留键名符合good_list中元素的项。
|
||||
对于重复的键名,添加后缀-a, -b, 等以确保唯一性。
|
||||
对于特殊键,使用“父键的键”格式命名。
|
||||
|
||||
参数:
|
||||
- data_dict (dict): 要遍历的嵌套字典。
|
||||
- good_list (list): 包含要查找的键的列表。
|
||||
- special_keys (list): 需要特殊处理的键的列表。
|
||||
- data (dict): 输入的嵌套字典。
|
||||
- good_list (list): 包含需要匹配的键名的列表。
|
||||
- special_keys (list): 需要特殊处理的键名列表。
|
||||
|
||||
返回:
|
||||
- OrderedDict: 包含所有匹配键及其值的字典,保持原始顺序。
|
||||
- dict: 筛选后的字典,包含符合条件的键值对。
|
||||
"""
|
||||
if special_keys is None:
|
||||
special_keys = []
|
||||
|
||||
result = OrderedDict()
|
||||
key_count = {} # 用于统计每个匹配键的出现次数(不包括特殊键)
|
||||
|
||||
# 预编译正则模式以提高效率
|
||||
# 编译正则表达式模式,匹配good_list中的元素,允许后面跟随“-数字”
|
||||
patterns = [re.compile(r'^' + re.escape(g) + r'(?:-\d+)?$') for g in good_list]
|
||||
|
||||
def matches(key):
|
||||
return any(pattern.match(key) for pattern in patterns)
|
||||
|
||||
# 第一次遍历:统计普通键的出现次数
|
||||
def first_pass(current_dict):
|
||||
if isinstance(current_dict, dict):
|
||||
for key, value in current_dict.items():
|
||||
if matches(key) and key not in special_keys:
|
||||
key_count[key] = key_count.get(key, 0) + 1
|
||||
# 递归遍历
|
||||
if isinstance(value, dict):
|
||||
first_pass(value)
|
||||
elif isinstance(value, list):
|
||||
first_pass(value)
|
||||
elif isinstance(current_dict, list):
|
||||
for item in current_dict:
|
||||
first_pass(item)
|
||||
|
||||
first_pass(data_dict)
|
||||
# 第一遍遍历:统计每个键名出现的次数(排除特殊键)
|
||||
key_counter = defaultdict(int)
|
||||
for top_key, nested_dict in data.items():
|
||||
for inner_key in nested_dict.keys():
|
||||
if inner_key in special_keys:
|
||||
continue
|
||||
if any(pattern.match(inner_key) for pattern in patterns):
|
||||
key_counter[inner_key] += 1
|
||||
|
||||
# 初始化用于跟踪每个重复键当前使用的后缀编号
|
||||
suffix_map = {key: 0 for key, count in key_count.items() if count > 1}
|
||||
suffix_map = {key: 0 for key, count in key_counter.items() if count > 1}
|
||||
|
||||
def get_suffix(count):
|
||||
def get_suffix_label(key):
|
||||
"""
|
||||
根据计数获取字母后缀,例如:
|
||||
1 -> '-a'
|
||||
2 -> '-b'
|
||||
...
|
||||
26 -> '-z'
|
||||
27 -> '-aa'
|
||||
根据当前计数获取字母后缀,并更新suffix_map。
|
||||
"""
|
||||
letters = string.ascii_lowercase
|
||||
suffix = ''
|
||||
while count > 0:
|
||||
count, remainder = divmod(count - 1, 26)
|
||||
suffix = letters[remainder] + suffix
|
||||
return '-' + suffix
|
||||
suffix_map[key] += 1
|
||||
return get_suffix(suffix_map[key])
|
||||
|
||||
# 第二次遍历:添加后缀或前缀,并构建结果字典
|
||||
def recurse(current_dict, parent_key=None):
|
||||
if isinstance(current_dict, dict):
|
||||
for key, value in current_dict.items():
|
||||
if matches(key):
|
||||
if key in special_keys:
|
||||
# 对于特殊键,使用当前父键名加'的'前缀
|
||||
new_key = f"{parent_key}的{key}" if parent_key else key
|
||||
result[new_key] = value
|
||||
# 第二遍遍历:根据统计结果添加后缀或特殊命名
|
||||
filtered_data = {}
|
||||
|
||||
for top_key, nested_dict in data.items():
|
||||
for inner_key, values in nested_dict.items():
|
||||
if any(pattern.match(inner_key) for pattern in patterns):
|
||||
if inner_key in special_keys:
|
||||
# 对于特殊键,使用“父键的键”命名
|
||||
new_key = f"{top_key}的{inner_key}"
|
||||
else:
|
||||
if key_counter[inner_key] > 1:
|
||||
# 对于重复键,添加后缀
|
||||
suffix = get_suffix_label(inner_key)
|
||||
new_key = f"{inner_key}-{suffix}"
|
||||
else:
|
||||
if key_count.get(key, 0) > 1:
|
||||
# 对于重复键,添加后缀以确保唯一性
|
||||
suffix_map[key] += 1
|
||||
suffix = get_suffix(suffix_map[key])
|
||||
new_key = f"{key}{suffix}"
|
||||
else:
|
||||
new_key = key
|
||||
result[new_key] = value
|
||||
# 递归遍历
|
||||
# 如果当前键是字典,新的父键是当前键
|
||||
# 否则,保持原来的父键
|
||||
if isinstance(value, dict):
|
||||
recurse(value, parent_key=key)
|
||||
elif isinstance(value, list):
|
||||
recurse(value, parent_key=parent_key)
|
||||
elif isinstance(current_dict, list):
|
||||
for item in current_dict:
|
||||
recurse(item, parent_key=parent_key)
|
||||
new_key = inner_key
|
||||
filtered_data[new_key] = values
|
||||
|
||||
recurse(data_dict)
|
||||
return result
|
||||
return filtered_data
|
||||
|
||||
def postprocess(data):
|
||||
"""递归地转换字典中的值为列表,如果所有键对应的值都是'/', '{}' 或 '未知'"""
|
||||
|
@ -38,7 +38,7 @@ def fetch_procurement_reqs(procurement_path, invalid_path):
|
||||
|
||||
# 构建最终的采购需求字典
|
||||
procurement_reqs = {
|
||||
"采购需求": technical_requirements.get("采购需求", "")
|
||||
"采购需求": technical_requirements.get("采购需求", {})
|
||||
}
|
||||
|
||||
# 合并 business_requirements 到 procurement_reqs 中
|
||||
@ -61,9 +61,9 @@ if __name__ == "__main__":
|
||||
start_time=time.time()
|
||||
output_folder = "C:\\Users\\Administrator\\Desktop\\货物标\\货物标output"
|
||||
# file_path="C:\\Users\\Administrator\\Desktop\\货物标\\output1\\2-招标文件(2020年广水市中小学教师办公电脑系统及多媒体“班班通”设备采购安装项目)_procurement.pdf"
|
||||
procurement_path = "C:\\Users\\Administrator\\Desktop\\fsdownload\\a110ed59-00e8-47ec-873a-bd4579a6e628\\ztbfile_procurement.pdf"
|
||||
procurement_docpath="C:\\Users\\Administrator\\Desktop\\fsdownload\\a110ed59-00e8-47ec-873a-bd4579a6e628\\ztbfile_procurement.docx"
|
||||
invalid_path="C:\\Users\\Administrator\\Desktop\\fsdownload\\a110ed59-00e8-47ec-873a-bd4579a6e628\\ztbfile.pdf"
|
||||
procurement_path = "C:\\Users\\Administrator\\Desktop\\fsdownload\\db79e9e0-830e-442c-8cb6-1d036215f8ff\\ztbfile_procurement.pdf"
|
||||
procurement_docpath="C:\\Users\\Administrator\\Desktop\\fsdownload\\db79e9e0-830e-442c-8cb6-1d036215f8ff\\ztbfile_procurement.docx"
|
||||
invalid_path="C:\\Users\\Administrator\\Desktop\\fsdownload\\db79e9e0-830e-442c-8cb6-1d036215f8ff\\ztbfile.pdf"
|
||||
res=fetch_procurement_reqs(procurement_path,invalid_path)
|
||||
print(json.dumps(res, ensure_ascii=False, indent=4))
|
||||
end_time=time.time()
|
||||
|
@ -179,7 +179,7 @@ def post_process_baseinfo(base_info,logger):
|
||||
# 更新基础信息
|
||||
base_info['基础信息'] = pure_base_info
|
||||
|
||||
logger.info(f"Extracted good_list: {good_list}")
|
||||
# logger.info(f"Extracted good_list: {good_list}")
|
||||
return base_info, good_list
|
||||
except Exception as e:
|
||||
logger.error(f"Error in post_process_baseinfo: {e}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user