Files
online_sys/frontend_财经商贸/fix_all_structure.py
KQL a7242f0c69 Initial commit: 教务系统在线平台
- 包含4个产业方向的前端项目:智能开发、智能制造、大健康、财经商贸
- 已清理node_modules、.yoyo等大文件,项目大小从2.6GB优化至631MB
- 配置完善的.gitignore文件

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-12 18:16:55 +08:00

100 lines
3.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import json
import re
print("正在修复文件结构...")
# 读取文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 备份原始文件
with open('src/mocks/resumeInterviewMock.js.backup_structure', 'w', encoding='utf-8') as f:
f.write(content)
print("✅ 已创建备份文件: src/mocks/resumeInterviewMock.js.backup_structure")
# 查找所有在 }] 后面出现的孤立的 compound_skills 或其他内容
# 这些是破坏结构的多余内容
issues_found = 0
# 第一步查找并删除所有多余的compound_skills等内容
# 在每个行业数组结束后,如果有多余的内容,删除它们
pattern = r'(\}\s*\}\s*\],)\s*compound_skills:\s*\[[^\]]*?\],\s*personal_summary:\s*"[^"]*?"\s*\}\s*\}\s*\],\s*("[\w\u4e00-\u9fff]+": \[)'
matches = re.findall(pattern, content)
if matches:
print(f"发现 {len(matches)} 处多余的compound_skills结构")
content = re.sub(pattern, r'\1\n \2', content)
issues_found += len(matches)
# 第二步:查找并删除孤立的数组元素
# 在 ], 后面直接跟着字符串的情况
pattern2 = r'(\],)\s*("[^"]+",[\s\S]*?)\],\s*personal_summary:'
matches2 = re.findall(pattern2, content)
if matches2:
print(f"发现 {len(matches2)} 处孤立的数组元素")
# 只保留第一个 ],
content = re.sub(pattern2, r'\1', content)
issues_found += len(matches2)
# 第三步确保resumeTemplates正确结束
# 检查第6516行附近的结构
lines = content.split('\n')
for i in range(len(lines)):
if i > 6510 and i < 6520:
# 在resumeTemplates结束的地方确保有正确的分号
if lines[i].strip() == '};' and i == 6515:
# 这是正确的
pass
elif lines[i].strip() == '}' and i == 6515:
lines[i] = ' };'
print(f"修复了第 {i+1} 行:添加了分号")
issues_found += 1
content = '\n'.join(lines)
# 写回文件
with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f:
f.write(content)
print(f"\n✅ 修复完成,共修复了 {issues_found} 处问题")
# 验证文件语法
import subprocess
result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'],
capture_output=True, text=True)
if result.returncode == 0:
print("✅ 文件语法验证通过!")
# 测试数据加载
test_code = """
const { resumeInterviewMockData } = require('./src/mocks/resumeInterviewMock.js');
console.log('Industries数量:', resumeInterviewMockData.industries.length);
console.log('ResumeTemplates键数量:', Object.keys(resumeInterviewMockData.resumeTemplates).length);
const camping = resumeInterviewMockData.resumeTemplates['露营地运营'];
console.log('露营地运营模板数量:', camping ? camping.length : 0);
"""
with open('test_load.js', 'w') as f:
f.write(test_code)
result2 = subprocess.run(['node', 'test_load.js'], capture_output=True, text=True)
if result2.returncode == 0:
print("\n数据加载测试:")
print(result2.stdout)
else:
print(f"\n数据加载失败: {result2.stderr}")
else:
print(f"❌ 文件仍有语法错误:\n{result.stderr}")
print("\n尝试定位错误位置...")
# 提取错误行号
import re
match = re.search(r':(\d+)', result.stderr)
if match:
line_num = int(match.group(1))
print(f"错误在第 {line_num} 行附近:")
for i in range(max(0, line_num-3), min(len(lines), line_num+3)):
prefix = ">>> " if i == line_num-1 else " "
print(f"{prefix}{i+1}: {lines[i][:100]}")