反脱敏脚本功能分析报告
一、脚本概述
脚本文件:执行脚本\反脱敏脚本.py
主要功能:对分析结果中的Markdown文档和Excel表格进行反脱敏映射,将脱敏数据还原为真实数据
代码规模:190行
二、核心功能模块
2.1 映射关系加载
- 函数:
load_mapping()(第23-39行) - 功能:从
data/映射记录.json加载映射关系,构建反向映射字典(从脱敏值到真实值) - 特点:支持多字段映射表,自动构建反向映射
2.2 文本反脱敏处理
- 函数:
desensitize_text()(第42-60行) - 功能:对文本内容进行反脱敏替换
- 技术要点:使用正则表达式词边界精确匹配,按字段名长度降序处理避免误替换
2.3 Markdown文件处理
- 函数:
desensitize_markdown()(第63-80行) - 输入:
分析结果/高价值客户产品分析报告.md - 输出:
分析结果/真实结论/高价值客户产品分析报告.md
2.4 DataFrame反脱敏处理
- 函数:
desensitize_dataframe()(第83-124行) - 映射字段:客户简称、客户类型、销售、部门名称、子产品名称、售前主产品名称、系统主产品名称
- 处理逻辑:精确匹配列名映射,模糊匹配(列名包含字段名),仅处理字符串类型列
2.5 Excel文件处理
- 函数:
desensitize_excel()(第127-154行) - 功能:处理多Sheet的Excel文件,对所有Sheet进行反脱敏
- 输入/输出:
分析结果/高价值客户产品分析结果.xlsx→分析结果/真实结论/高价值客户产品分析结果.xlsx
2.6 主流程控制
- 函数:
process_all()(第157-179行) - 执行顺序:加载映射关系 → 处理Markdown → 处理Excel → 输出结果
三、技术特点
3.1 映射策略
- ✅ 反向映射:从脱敏值映射到真实值
- ✅ 优先级处理:按字段名长度降序,避免短字段名误替换长字段名
- ✅ 精确匹配:使用正则表达式词边界,避免部分匹配
3.2 数据处理
- ✅ 支持多Sheet Excel文件,保留所有Sheet结构
- ✅ 类型检查:仅处理字符串类型列
- ✅ 缺失值处理:使用
pd.notna()检查 - ✅ 数据保护:使用
df.copy()避免修改原数据
3.3 错误处理
- ✅ 异常捕获:主函数包含try-except
- ✅ 路径处理:自动创建输出目录
- ✅ 编码处理:统一使用UTF-8编码
四、配置信息
- 映射文件:
data/映射记录.json - 输入文件:
分析结果/高价值客户产品分析报告.md、分析结果/高价值客户产品分析结果.xlsx - 输出目录:
分析结果/真实结论/(自动创建) - 映射字段:支持8个字段的反脱敏映射(客户简称、客户类型、销售、部门名称、子产品名称等)
五、代码质量评估
5.1 优点
- ✅ 模块化设计清晰,函数职责单一
- ✅ 映射策略合理,避免误替换
- ✅ 支持多种文件格式(Markdown、Excel)
- ✅ 错误处理完善
5.2 可优化项
- 可添加映射文件存在性检查
- 可添加处理前后数据对比验证
- 可添加日志记录功能
六、总结
反脱敏脚本设计合理,功能完整,能够有效将脱敏的分析结果还原为真实数据。代码结构清晰,支持Markdown和Excel两种格式,映射策略科学,能够避免误替换问题。适用于分析结果的批量反脱敏处理场景。