85 lines
2.7 KiB
Python
85 lines
2.7 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
# -*- coding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
更新剩余的空questions数组
|
||
|
|
"""
|
||
|
|
|
||
|
|
import json
|
||
|
|
import re
|
||
|
|
from datetime import datetime
|
||
|
|
|
||
|
|
def update_remaining_questions():
|
||
|
|
# 读取面试题数据
|
||
|
|
with open('interview_questions_data.json', 'r', encoding='utf-8') as f:
|
||
|
|
interview_data = json.load(f)
|
||
|
|
|
||
|
|
# 读取mock文件
|
||
|
|
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
|
||
|
|
content = f.read()
|
||
|
|
|
||
|
|
# 备份
|
||
|
|
backup_name = f'src/mocks/resumeInterviewMock.js.backup_{datetime.now().strftime("%Y%m%d_%H%M%S")}_remaining'
|
||
|
|
with open(backup_name, 'w', encoding='utf-8') as f:
|
||
|
|
f.write(content)
|
||
|
|
print(f"已创建备份: {backup_name}")
|
||
|
|
|
||
|
|
# 定义需要更新的岗位群映射
|
||
|
|
updates_map = {
|
||
|
|
"房地产经纪": "房地产经纪",
|
||
|
|
"工程采购": "工程采购",
|
||
|
|
"工程造价与资料管理": "工程造价与资料管理",
|
||
|
|
"建筑安装工程": "建筑安装工程",
|
||
|
|
"建筑工程检测": "建筑工程检测",
|
||
|
|
"建筑工程设计": "建筑工程设计",
|
||
|
|
"建筑施工与施工管理": "建筑施工与施工管理"
|
||
|
|
}
|
||
|
|
|
||
|
|
updated = 0
|
||
|
|
|
||
|
|
# 为每个岗位群更新questions
|
||
|
|
for job_group_name, data_key in updates_map.items():
|
||
|
|
if data_key not in interview_data:
|
||
|
|
print(f"未找到 {data_key} 的面试题数据")
|
||
|
|
continue
|
||
|
|
|
||
|
|
questions = interview_data[data_key]
|
||
|
|
if not questions:
|
||
|
|
continue
|
||
|
|
|
||
|
|
# 限制题目数量
|
||
|
|
max_questions = min(10, len(questions))
|
||
|
|
selected_questions = questions[:max_questions]
|
||
|
|
|
||
|
|
# 构建questions数组
|
||
|
|
questions_obj = [{
|
||
|
|
"id": f"group_{job_group_name}_q1",
|
||
|
|
"question": f"{job_group_name}面试题",
|
||
|
|
"subQuestions": selected_questions
|
||
|
|
}]
|
||
|
|
|
||
|
|
# 查找并替换
|
||
|
|
# 使用正则表达式查找该岗位群的questions字段
|
||
|
|
pattern = rf'("name":\s*"{re.escape(job_group_name)}"[^}}]*?"questions":\s*)\[\]'
|
||
|
|
|
||
|
|
def replace_func(match):
|
||
|
|
nonlocal updated
|
||
|
|
questions_json = json.dumps(questions_obj, ensure_ascii=False, indent=4)
|
||
|
|
# 调整缩进
|
||
|
|
questions_json = questions_json.replace('\n', '\n ')
|
||
|
|
updated += 1
|
||
|
|
return match.group(1) + questions_json
|
||
|
|
|
||
|
|
content = re.sub(pattern, replace_func, content, flags=re.DOTALL)
|
||
|
|
|
||
|
|
if updated > 0:
|
||
|
|
print(f"已更新: {job_group_name} ({len(selected_questions)} 道题)")
|
||
|
|
|
||
|
|
# 写回文件
|
||
|
|
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
|
||
|
|
f.write(content)
|
||
|
|
|
||
|
|
print(f"\n总共更新了 {updated} 个岗位群的面试题")
|
||
|
|
return updated
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
update_remaining_questions()
|