#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json # 读取清理后的数据 with open('resume_updates_cleaned.json', 'r', encoding='utf-8') as f: updates = json.load(f) # 读取当前文件 with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f: content = f.read() # 需要更新的岗位列表 positions_to_update = [ '文创产品设计师', '文创产品策划师', '文创产品设计师助理', '品牌策划运营专员', '品牌公关', '品牌推广专员', 'ip运营', 'IP运营总监助理', '品牌公关管培生' ] print("开始精确更新九个岗位的数据...") print("-" * 50) for position_name in positions_to_update: # 获取该岗位的数据 position_data = next((u for u in updates if u['position'] == position_name), None) if not position_data: print(f"❌ 未找到 {position_name} 的数据") continue # 准备要替换的内容 student_info = position_data['studentInfo'] # 查找该岗位在文件中的位置 search_str = f'position: "{position_name}"' pos = content.find(search_str) if pos == -1: print(f"❌ 未找到 {position_name} 的位置") continue # 找到该岗位的studentInfo: { ... } 部分 student_info_start = content.find('studentInfo: {', pos) if student_info_start == -1: print(f"❌ 未找到 {position_name} 的studentInfo") continue # 找到对应的结束大括号 brace_count = 0 i = student_info_start + len('studentInfo: {') start_brace_pos = i - 1 while i < len(content): if content[i] == '{': brace_count += 1 elif content[i] == '}': if brace_count == 0: end_brace_pos = i break brace_count -= 1 i += 1 # 构建新的studentInfo内容 project_exp = student_info['project_experience'] # 对描述中的引号进行转义 description = project_exp['description'].replace('`', '\\`').replace('"', '\\"') # 对个人总结中的引号进行转义 personal_summary = student_info['personal_summary'].replace('"', '\\"') new_student_info = f'''studentInfo: {{ project_experience: {{ project_name: "{project_exp['project_name']}", position: "{project_exp['position']}", time_period: "{project_exp['time_period']}", company: "{project_exp['company']}", description: `{description}` }}, core_skills: {json.dumps(student_info['core_skills'], ensure_ascii=False, indent=10)}, compound_skills: {json.dumps(student_info['compound_skills'], ensure_ascii=False, indent=10)}, personal_summary: "{personal_summary}" }}''' # 替换内容 content = content[:student_info_start] + new_student_info + content[end_brace_pos+1:] print(f"✅ 已更新 {position_name}") # 保存文件 with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(content) print("-" * 50) print("✅ 所有岗位更新完成!")