#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import re def verify_position_levels(): """验证项目库数据中的岗位等级是否与大健康岗位简历数据一致""" # 1. 读取岗位等级映射 position_level_map = {} with open('网页未导入数据/大健康产业/大健康岗位简历.json', 'r', encoding='utf-8') as f: resume_data = json.load(f) for item in resume_data: position_name = item.get('岗位名称', '') level = item.get('岗位等级标签', '') if position_name and level: position_level_map[position_name] = level # 2. 读取生成的projectLibraryMock.js文件 with open('src/mocks/projectLibraryMock.js', 'r', encoding='utf-8') as f: mock_content = f.read() # 3. 提取项目详情数据 # 找到projects数组的定义 projects_match = re.search(r'const projects = (\[[\s\S]*?\]);', mock_content) if projects_match: projects_json = projects_match.group(1) # 处理JS格式到JSON格式 projects_json = projects_json.replace('\\n', '\n') projects_data = json.loads(projects_json) print("=" * 60) print("项目库岗位等级验证报告") print("=" * 60) all_correct = True error_count = 0 correct_count = 0 for project in projects_data: if 'applicablePositions' in project: print(f"\n项目: {project.get('name', 'Unknown')}") print("-" * 40) for pos_item in project['applicablePositions']: position = pos_item['position'] level_in_project = pos_item['level'] expected_level = position_level_map.get(position, '未找到') if expected_level == '未找到': print(f" ⚠️ {position}: 在简历数据中未找到") error_count += 1 all_correct = False elif level_in_project != expected_level: print(f" ❌ {position}: {level_in_project} → 应为 {expected_level}") error_count += 1 all_correct = False else: print(f" ✅ {position}: {level_in_project}") correct_count += 1 print("\n" + "=" * 60) print("验证结果汇总:") print(f"✅ 正确: {correct_count} 个岗位") print(f"❌ 错误: {error_count} 个岗位") if all_correct: print("\n🎉 所有岗位等级都正确!") else: print("\n⚠️ 发现岗位等级不一致,请检查!") return all_correct else: print("无法解析项目数据") return False if __name__ == "__main__": verify_position_levels()