Files
online_sys/frontend_大健康/generate_health_joblevel.py

129 lines
3.6 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
from collections import defaultdict
def load_health_data():
"""加载大健康岗位数据"""
with open('网页未导入数据/大健康产业/大健康岗位简历.json', 'r', encoding='utf-8') as f:
resume_data = json.load(f)
return resume_data
def map_level_to_key(level_tag):
"""将岗位等级标签映射到joblevel的key"""
level_map = {
'基础岗': 'ordinary',
'技术骨干岗': 'middle',
'储备干部岗': 'high',
'普通岗': 'ordinary'
}
return level_map.get(level_tag, 'ordinary')
def map_level_to_name(level_tag):
"""将岗位等级标签映射到显示名称"""
level_name_map = {
'基础岗': '普通岗',
'技术骨干岗': '技术骨干岗',
'储备干部岗': '储备干部岗',
'普通岗': '普通岗'
}
return level_name_map.get(level_tag, '普通岗')
def create_joblevel_data(resume_data):
"""创建joblevel.json的数据结构"""
# 按等级分组
level_groups = {
'high': {
'name': '储备干部岗',
'list': []
},
'middle': {
'name': '技术骨干岗',
'list': []
},
'ordinary': {
'name': '普通岗',
'list': []
}
}
# 处理每个岗位
record_id = 1
for item in resume_data:
level_key = map_level_to_key(item['岗位等级标签'])
position_info = {
'record_id': f'health_{record_id}',
'position_name': item['岗位名称'],
'img': item['简历头像url']
}
level_groups[level_key]['list'].append(position_info)
record_id += 1
# 构建最终的JSON结构
result = {
'code': 200,
'message': '操作成功',
'data': level_groups
}
return result
def save_joblevel_data(data):
"""保存joblevel数据"""
# 备份原文件
import os
import shutil
from datetime import datetime
original_file = 'src/data/joblevel.json'
if os.path.exists(original_file):
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_file = f'{original_file}.backup_{timestamp}'
shutil.copy(original_file, backup_file)
print(f"已备份原文件到: {backup_file}")
# 保存新数据
with open(original_file, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
print(f"✅ 已更新 {original_file}")
return True
def print_statistics(data):
"""打印统计信息"""
job_data = data['data']
print("\n📊 岗位等级分布统计:")
for level_key, level_info in job_data.items():
count = len(level_info['list'])
print(f" {level_info['name']}: {count} 个岗位")
# 打印前3个岗位示例
for i, job in enumerate(level_info['list'][:3]):
print(f" - {job['position_name']}")
if count > 3:
print(f" ... 还有 {count - 3} 个岗位")
def main():
print("开始生成大健康产业的joblevel数据...")
# 加载数据
resume_data = load_health_data()
print(f"加载了 {len(resume_data)} 个岗位数据")
# 创建joblevel数据结构
joblevel_data = create_joblevel_data(resume_data)
# 保存数据
save_joblevel_data(joblevel_data)
# 打印统计信息
print_statistics(joblevel_data)
print("\n✅ 数据生成完成!")
if __name__ == "__main__":
main()