69 lines
2.9 KiB
Python
69 lines
2.9 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
import json
|
||
|
|
import re
|
||
|
|
|
||
|
|
# 读取源数据
|
||
|
|
with open('网页未导入数据/交通物流产业/交通物流项目案例.json', 'r', encoding='utf-8') as f:
|
||
|
|
source_data = json.load(f)
|
||
|
|
|
||
|
|
# 读取现有的mock文件
|
||
|
|
with open('src/mocks/projectLibraryMock.js', 'r', encoding='utf-8') as f:
|
||
|
|
mock_content = f.read()
|
||
|
|
|
||
|
|
# 准备所有项目的详细内容
|
||
|
|
project_details = []
|
||
|
|
for idx, project in enumerate(source_data, 1):
|
||
|
|
name = project['案例名称']
|
||
|
|
content = project['项目案例内容']
|
||
|
|
|
||
|
|
# 分割内容为不同部分
|
||
|
|
# 提取项目概述
|
||
|
|
overview_match = re.search(r'(.*?)(?=## 项目整体流程介绍|$)', content, re.DOTALL)
|
||
|
|
overview = overview_match.group(1).strip() if overview_match else content[:1000]
|
||
|
|
|
||
|
|
# 提取流程介绍
|
||
|
|
process_match = re.search(r'## 项目整体流程介绍(.*?)(?=## 项目案例关键技术点|$)', content, re.DOTALL)
|
||
|
|
process = process_match.group(1).strip() if process_match else ''
|
||
|
|
if not process:
|
||
|
|
process_match = re.search(r'### 流程.*?(?=### |## |$)', content, re.DOTALL)
|
||
|
|
process = process_match.group(0) if process_match else '流程内容待补充'
|
||
|
|
|
||
|
|
# 提取关键技术点
|
||
|
|
keypoints_match = re.search(r'## 项目案例关键技术点(.*?)$', content, re.DOTALL)
|
||
|
|
keypoints = keypoints_match.group(1).strip() if keypoints_match else ''
|
||
|
|
if not keypoints:
|
||
|
|
keypoints_match = re.search(r'### .*?技术.*?(?=### |## |$)', content, re.DOTALL)
|
||
|
|
keypoints = keypoints_match.group(0) if keypoints_match else '技术点待补充'
|
||
|
|
|
||
|
|
# 处理转义字符
|
||
|
|
overview = overview.replace('\\', '\\\\').replace('`', '\\`').replace('${', '\\${')
|
||
|
|
process = '## 项目整体流程介绍\\n' + process if not process.startswith('##') else process
|
||
|
|
process = process.replace('\\', '\\\\').replace('`', '\\`').replace('${', '\\${')
|
||
|
|
keypoints = '## 项目案例关键技术点\\n' + keypoints if not keypoints.startswith('##') else keypoints
|
||
|
|
keypoints = keypoints.replace('\\', '\\\\').replace('`', '\\`').replace('${', '\\${')
|
||
|
|
|
||
|
|
project_details.append({
|
||
|
|
'id': idx,
|
||
|
|
'name': name,
|
||
|
|
'overview': overview,
|
||
|
|
'process': process,
|
||
|
|
'keypoints': keypoints,
|
||
|
|
'positions': project.get('对应岗位', []),
|
||
|
|
'attachments': project.get('附件', [])
|
||
|
|
})
|
||
|
|
|
||
|
|
# 输出前5个项目的详细内容供更新
|
||
|
|
print("=== 项目3-5的详细内容 ===")
|
||
|
|
for i in range(2, min(5, len(project_details))):
|
||
|
|
p = project_details[i]
|
||
|
|
print(f"\n项目{p['id']}: {p['name']}")
|
||
|
|
print(f"概述长度: {len(p['overview'])} 字符")
|
||
|
|
print(f"流程长度: {len(p['process'])} 字符")
|
||
|
|
print(f"技术点长度: {len(p['keypoints'])} 字符")
|
||
|
|
print("---")
|
||
|
|
|
||
|
|
# 保存为JSON以便后续使用
|
||
|
|
with open('project_details_extracted.json', 'w', encoding='utf-8') as f:
|
||
|
|
json.dump(project_details, f, ensure_ascii=False, indent=2)
|
||
|
|
|
||
|
|
print("\n详细内容已保存到 project_details_extracted.json")
|