Files
ALL-teach_sys/frontend_化工/update_mock_with_complete_data.py

56 lines
1.9 KiB
Python
Raw Normal View History

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
def escape_for_js(text):
"""转义文本以适合在JavaScript字符串中使用"""
# 转义换行符
text = text.replace('\n', '\\n')
# 转义双引号
text = text.replace('"', '\\"')
return text
def main():
# 读取提取的完整数据
with open('extracted_project_data.json', 'r', encoding='utf-8') as f:
complete_data = json.load(f)
# 读取当前的mock文件
with open('src/mocks/projectLibraryMock.js', 'r', encoding='utf-8') as f:
mock_content = f.read()
# 为每个项目更新详情
for project in complete_data:
project_id = project['id']
print(f"\n处理项目 {project_id}: {project['name']}")
# 转义内容
overview = escape_for_js(project['overview'])
process = escape_for_js(project['process'])
keypoints = escape_for_js(project['keypoints'])
# 查找项目在详情数组中的位置
# 使用更精确的正则表达式来匹配项目详情
project_pattern = rf'(\{{\s*"id":\s*{project_id},\s*"name":\s*"[^"]+",\s*"positions":[^}}]+\}}\],\s*"unit":\s*"[^"]+",)\s*"overview":\s*"[^"]*",\s*"process":\s*"[^"]*",\s*"keyPoints":\s*"[^"]*"'
# 创建替换内容
replacement = rf'\1\n "overview": "{overview}",\n "process": "{process}",\n "keyPoints": "{keypoints}"'
# 执行替换
new_content, count = re.subn(project_pattern, replacement, mock_content, flags=re.DOTALL)
if count > 0:
mock_content = new_content
print(f" ✅ 已更新项目 {project_id} 的详情")
else:
print(f" ⚠️ 未找到项目 {project_id} 的匹配位置")
# 保存更新后的文件
with open('src/mocks/projectLibraryMock.js', 'w', encoding='utf-8') as f:
f.write(mock_content)
print("\n✅ Mock文件更新完成")
if __name__ == "__main__":
main()