Files
ALL-teach_sys/frontend_大健康/generate_my_projects_data.py

50 lines
1.7 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
from collections import defaultdict
# 读取大健康项目案例数据
with open('网页未导入数据/大健康产业/大健康项目案例.json', 'r', encoding='utf-8') as f:
health_data = json.load(f)
# 按单元分组项目
unit_projects = defaultdict(set)
for item in health_data:
project_name = item.get("案例名称", "")
# 收集复合能力课单元
compound_units = item.get("对应单元名称(复合能力课)", "")
if compound_units:
for unit in compound_units.split(","):
unit = unit.strip()
if unit:
unit_projects[unit].add(project_name)
# 收集垂直能力课单元
vertical_units = item.get("对应单元名称(垂直能力课)", "")
if vertical_units:
for unit in vertical_units.split(","):
unit = unit.strip()
if unit:
unit_projects[unit].add(project_name)
# 生成我的项目库数据结构
my_projects_data = []
for unit_name, projects in sorted(unit_projects.items()):
# 只选择有2个以上项目的单元最多取前2个项目
project_list = sorted(list(projects))[:2]
if len(project_list) >= 1: # 至少有1个项目的单元才显示
my_projects_data.append({
"unitName": unit_name,
"projects": project_list
})
# 只取前10个单元用于展示
my_projects_data = my_projects_data[:10]
# 生成JavaScript代码
print("// 我的项目库数据 - 大健康产业")
print("const myProjectsData = " + json.dumps(my_projects_data, ensure_ascii=False, indent=2) + ";")
print(f"\n// 共{len(my_projects_data)}个单元")