129 lines
3.6 KiB
Python
129 lines
3.6 KiB
Python
|
|
#!/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()
|