Files
ALL-teach_sys/frontend_化工/update_all_questions_final.py

78 lines
2.7 KiB
Python
Raw Permalink Normal View History

#!/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}")