test_clean_json.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """测试增强的JSON解析器"""
  4. import sys
  5. from pathlib import Path
  6. # 添加项目根目录到路径
  7. project_root = Path(__file__).parent
  8. sys.path.insert(0, str(project_root))
  9. from lib.batch_match_analyzer import clean_json_text, parse_batch_match_response
  10. # 模拟Pro模型的错误输出(包含trib{)
  11. error_json = '''```json
  12. [
  13. {
  14. "特征": "健忘",
  15. "分数": 0.00,
  16. "说明": "测试1"
  17. },
  18. trib{
  19. "特征": "抗压能力",
  20. "分数": 0.00,
  21. "说明": "测试2"
  22. },
  23. {
  24. "特征": "公司最底层",
  25. "分数": 0.00,
  26. "说明": "测试3"
  27. }
  28. ]
  29. ```'''
  30. print('=' * 70)
  31. print('测试增强的JSON解析器')
  32. print('=' * 70)
  33. print('\n原始JSON(包含错误trib{):')
  34. print(error_json[:150] + '...')
  35. print('\n清理后的JSON:')
  36. cleaned = clean_json_text(error_json)
  37. print(cleaned[:150] + '...')
  38. print('\n尝试解析...')
  39. result = parse_batch_match_response(error_json)
  40. print(f'解析结果数量: {len(result)}')
  41. if len(result) > 1:
  42. print('✅ 成功解析!')
  43. for i, r in enumerate(result):
  44. print(f" {i+1}. {r.get('特征')}: {r.get('分数')}")
  45. else:
  46. print('❌ 解析失败')
  47. print(f"返回: {result}")