#!/usr/bin/env python3 import json import re import subprocess from datetime import datetime # 读取完整的面试题数据 with open('all_questions_complete.json', 'r', encoding='utf-8') as f: job_group_questions = json.load(f) # 读取现有mock文件 with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f: content = f.read() # 备份文件 timestamp = datetime.now().strftime('%Y%m%d_%H%M%S') backup_file = f'src/mocks/resumeInterviewMock.js.backup_final_{timestamp}' with open(backup_file, 'w', encoding='utf-8') as f: f.write(content) print(f"已创建备份: {backup_file}") # 更新每个岗位群的面试题 updated_count = 0 for job_group, questions in job_group_questions.items(): if not questions: continue # 构建subQuestions数组内容 sub_questions_items = [] for i, q in enumerate(questions): # 对问题和答案进行JSON转义 escaped_q = json.dumps(q['question'], ensure_ascii=False) escaped_a = json.dumps(q['answer'], ensure_ascii=False) question_str = '{' question_str += f'"id": "q{i+1}", ' question_str += f'"question": {escaped_q}, ' question_str += f'"answer": {escaped_a}' question_str += '}' sub_questions_items.append(question_str) # 创建完整的subQuestions内容 sub_questions_content = ',\n'.join(sub_questions_items) # 查找并替换对应岗位群的subQuestions pattern = rf'("question"\s*:\s*"{re.escape(job_group)}"[^}}]*?"subQuestions"\s*:\s*)\[[^\]]*\]' replacement = rf'\1[\n{sub_questions_content}\n ]' new_content = re.sub(pattern, replacement, content, flags=re.DOTALL) if new_content != content: content = new_content updated_count += 1 print(f"✓ 已更新 {job_group} 的 {len(questions)} 道面试题") # 保存更新后的文件 with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(content) # 验证语法 try: result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'], capture_output=True, text=True, encoding='utf-8') if result.returncode == 0: print(f"\n✓ 语法检查通过") print(f"✓ 成功更新了 {updated_count} 个岗位群的面试题") print(f"\n✅ 所有面试题更新成功完成!") else: print(f"\n✗ 语法检查失败: {result.stderr}") # 恢复备份 with open(backup_file, 'r', encoding='utf-8') as f: content = f.read() with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(content) print(f"已从备份恢复") except Exception as e: print(f"错误: {e}")