50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
|
|
#!/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)}个单元")
|