95 lines
3.8 KiB
Python
95 lines
3.8 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
# -*- coding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
替换企业内推岗位数据
|
||
|
|
将视觉设计内推岗位.json的数据替换到companyJobsNew.json
|
||
|
|
"""
|
||
|
|
|
||
|
|
import json
|
||
|
|
import shutil
|
||
|
|
from datetime import datetime
|
||
|
|
|
||
|
|
def replace_company_jobs_data():
|
||
|
|
"""替换企业内推岗位数据"""
|
||
|
|
|
||
|
|
source_file = "网页未导入数据/视觉设计产业/视觉设计内推岗位.json"
|
||
|
|
target_file = "src/data/companyJobsNew.json"
|
||
|
|
|
||
|
|
# 创建备份
|
||
|
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||
|
|
backup_path = f"{target_file}.backup_{timestamp}"
|
||
|
|
shutil.copy2(target_file, backup_path)
|
||
|
|
print(f"📦 已创建备份: {backup_path}")
|
||
|
|
|
||
|
|
try:
|
||
|
|
# 读取视觉设计内推岗位数据
|
||
|
|
print("📖 读取视觉设计内推岗位数据...")
|
||
|
|
with open(source_file, 'r', encoding='utf-8') as f:
|
||
|
|
visual_design_jobs = json.load(f)
|
||
|
|
|
||
|
|
print(f"✅ 成功读取 {len(visual_design_jobs)} 个视觉设计内推岗位")
|
||
|
|
|
||
|
|
# 数据字段映射和处理
|
||
|
|
processed_jobs = []
|
||
|
|
|
||
|
|
for job in visual_design_jobs:
|
||
|
|
# 检查必要字段
|
||
|
|
if not job.get("内推岗位名称"):
|
||
|
|
print(f"⚠️ 跳过缺少岗位名称的数据: {job}")
|
||
|
|
continue
|
||
|
|
|
||
|
|
# 处理截止时间字段
|
||
|
|
deadline = job.get("岗位招聘截止时间", "2025/12/31")
|
||
|
|
|
||
|
|
# 构造符合原始数据结构的格式
|
||
|
|
processed_job = {
|
||
|
|
"内推岗位名称": job["内推岗位名称"],
|
||
|
|
"薪资": job.get("薪资", "面议"),
|
||
|
|
"工作地点": job.get("工作地点", "待定"),
|
||
|
|
"学历要求": job.get("学历要求", "专科及以上"),
|
||
|
|
"招聘人数": job.get("招聘人数", "1人"),
|
||
|
|
"职位标签": job.get("职位标签", []),
|
||
|
|
"福利标签": job.get("福利标签", []),
|
||
|
|
"职位描述": job.get("职位描述", ""),
|
||
|
|
"任职要求": job.get("任职要求", ""),
|
||
|
|
"公司介绍": job.get("公司介绍", ""),
|
||
|
|
"岗位相关标签": job.get("岗位相关标签", "专业相关岗位"),
|
||
|
|
"截止时间": deadline,
|
||
|
|
"岗位标签": "就业" # 所有岗位都标记为就业岗位
|
||
|
|
}
|
||
|
|
|
||
|
|
processed_jobs.append(processed_job)
|
||
|
|
print(f"✅ 处理岗位: {processed_job['内推岗位名称']}")
|
||
|
|
|
||
|
|
# 写入目标文件
|
||
|
|
print(f"💾 写入 {len(processed_jobs)} 个岗位到 {target_file}")
|
||
|
|
with open(target_file, 'w', encoding='utf-8') as f:
|
||
|
|
json.dump(processed_jobs, f, ensure_ascii=False, indent=2)
|
||
|
|
|
||
|
|
print(f"📊 替换统计:")
|
||
|
|
print(f" - 视觉设计岗位数: {len(visual_design_jobs)}")
|
||
|
|
print(f" - 成功处理岗位数: {len(processed_jobs)}")
|
||
|
|
print(f"✅ 已更新 {target_file}")
|
||
|
|
|
||
|
|
# 显示部分岗位名称作为验证
|
||
|
|
if processed_jobs:
|
||
|
|
print(f"📋 替换的岗位包括:")
|
||
|
|
for i, job in enumerate(processed_jobs[:5]): # 显示前5个
|
||
|
|
print(f" {i+1}. {job['内推岗位名称']} - {job['薪资']} - {job['工作地点']}")
|
||
|
|
if len(processed_jobs) > 5:
|
||
|
|
print(f" ... 还有 {len(processed_jobs) - 5} 个岗位")
|
||
|
|
|
||
|
|
except FileNotFoundError:
|
||
|
|
print(f"❌ 文件未找到: {source_file}")
|
||
|
|
except json.JSONDecodeError as e:
|
||
|
|
print(f"❌ JSON格式错误: {e}")
|
||
|
|
except Exception as e:
|
||
|
|
print(f"❌ 处理失败: {e}")
|
||
|
|
# 恢复备份
|
||
|
|
shutil.copy2(backup_path, target_file)
|
||
|
|
print("🔄 已恢复原始文件")
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
print("🚀 开始替换企业内推岗位数据...")
|
||
|
|
replace_company_jobs_data()
|
||
|
|
print("🎉 处理完成!")
|