61 lines
2.2 KiB
Python
61 lines
2.2 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
import re
|
|||
|
|
|
|||
|
|
# 读取智能制造项目案例数据
|
|||
|
|
with open('网页未导入数据/智能制造产业/智能制造项目案例.json', 'r', encoding='utf-8') as f:
|
|||
|
|
raw_data = json.load(f)
|
|||
|
|
|
|||
|
|
# 按照单元分组项目
|
|||
|
|
unit_projects = {}
|
|||
|
|
for item in raw_data:
|
|||
|
|
# 获取单元名称(优先使用垂直能力课)
|
|||
|
|
unit = item.get('对应单元名称(垂直能力课)') or item.get('对应单元名称(复合能力课)', '未分类')
|
|||
|
|
if unit not in unit_projects:
|
|||
|
|
unit_projects[unit] = []
|
|||
|
|
|
|||
|
|
# 添加项目名称(限制每个单元最多2-3个项目)
|
|||
|
|
if len(unit_projects[unit]) < 3:
|
|||
|
|
unit_projects[unit].append(item['案例名称'])
|
|||
|
|
|
|||
|
|
# 生成myProjectsData格式
|
|||
|
|
my_projects_data = []
|
|||
|
|
for unit_name, projects in unit_projects.items():
|
|||
|
|
if projects: # 只添加有项目的单元
|
|||
|
|
my_projects_data.append({
|
|||
|
|
"unitName": unit_name,
|
|||
|
|
"projects": projects
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
# 生成新的myProjectsData内容
|
|||
|
|
my_projects_content = json.dumps(my_projects_data, ensure_ascii=False, indent=2)
|
|||
|
|
|
|||
|
|
# 读取现有的页面文件
|
|||
|
|
with open('src/pages/ProjectLibraryPage/index.jsx', 'r', encoding='utf-8') as f:
|
|||
|
|
content = f.read()
|
|||
|
|
|
|||
|
|
# 找到myProjectsData数组的开始和结束位置
|
|||
|
|
pattern = r'const myProjectsData = \[(.*?)\];'
|
|||
|
|
match = re.search(pattern, content, re.DOTALL)
|
|||
|
|
|
|||
|
|
if match:
|
|||
|
|
# 替换myProjectsData数组内容
|
|||
|
|
new_content = content[:match.start()] + f'const myProjectsData = {my_projects_content};' + content[match.end():]
|
|||
|
|
|
|||
|
|
# 写回文件
|
|||
|
|
with open('src/pages/ProjectLibraryPage/index.jsx', 'w', encoding='utf-8') as f:
|
|||
|
|
f.write(new_content)
|
|||
|
|
|
|||
|
|
print(f"✅ 成功更新我的项目数据!")
|
|||
|
|
print(f"- 单元总数: {len(my_projects_data)}")
|
|||
|
|
total_projects = sum(len(unit['projects']) for unit in my_projects_data)
|
|||
|
|
print(f"- 项目总数: {total_projects}")
|
|||
|
|
print("- 单元列表:")
|
|||
|
|
for unit in my_projects_data[:5]: # 只显示前5个
|
|||
|
|
print(f" - {unit['unitName']}: {len(unit['projects'])}个项目")
|
|||
|
|
if len(my_projects_data) > 5:
|
|||
|
|
print(f" ... 还有{len(my_projects_data) - 5}个单元")
|
|||
|
|
else:
|
|||
|
|
print("❌ 未找到myProjectsData数组,请检查文件格式")
|