Files
aiagents-stock/docs/主力选股批量分析修复说明.md
2025-10-24 14:56:34 +08:00

111 lines
3.1 KiB
Markdown

# 主力选股批量分析修复说明
## 修复日期
2025-10-22
## 修复问题
### 1. JSON序列化失败
**问题描述**: 批量分析结果保存到历史记录时失败,错误信息:`Object of type DataFrame is not JSON serializable`
**原因**: 分析结果中包含Pandas DataFrame和Series对象,无法直接序列化为JSON
**解决方案**:
-`main_force_batch_db.py` 中添加 `_clean_results_for_json()` 方法
- 递归清理所有不可序列化的对象:
- DataFrame → `to_dict('records')`
- Series → `to_dict()`
- 其他对象 → `str(value)`
- 限制DataFrame最大行数为100,避免数据过大
**相关文件**:
- `main_force_batch_db.py` (lines 50-102)
### 2. 历史记录显示N/A
**问题描述**: 批量分析历史记录中,股票名称和评级显示为N/A
**原因**: 字段名不匹配
- 代码中访问: `stock_info.get('股票名称', 'N/A')`
- 实际字段名: `stock_info['name']`
- 代码中访问: `final_decision.get('investment_rating', 'N/A')`
- 实际字段名: `final_decision['rating']`
**解决方案**:
修复以下文件中的字段名访问:
- `main_force_history_ui.py`:
- `股票名称``name`
- `investment_rating``rating`
- `investment_advice``operation_advice`
- `main_force_ui.py`:
- `advice``operation_advice`
**相关文件**:
- `main_force_history_ui.py` (lines 109, 110, 126, 130)
- `main_force_ui.py` (line 906)
### 3. 详细调试日志
**问题描述**: 难以追踪批量分析和保存过程中的问题
**解决方案**:
- 在并行分析中添加详细的进度日志
- 在保存历史记录前添加数据类型检查
- 添加保存耗时统计
- 添加详细的错误堆栈信息
**相关文件**:
- `main_force_ui.py` (lines 650-692, 706-753)
## 数据结构参考
### stock_info 字段
```python
{
"symbol": "600519",
"name": "贵州茅台", # <-- 正确的字段名
"current_price": "1850.00",
"change_percent": "2.5%",
"pe_ratio": "30.5",
"pb_ratio": "10.2",
"market_cap": "2.3万亿",
"market": "中国A股",
"exchange": "上海/深圳证券交易所"
}
```
### final_decision 字段
```python
{
"rating": "买入", # <-- 正确的字段名
"target_price": "2000",
"operation_advice": "...", # <-- 正确的字段名
"entry_range": "1800-1850",
"take_profit": "2000",
"stop_loss": "1750",
"holding_period": "3-6个月",
"position_size": "中等仓位",
"risk_warning": "...",
"confidence_level": "8"
}
```
## 测试建议
1. **功能测试**:
- 运行10只股票的批量分析
- 检查历史记录是否正确保存
- 验证股票名称和评级正确显示
2. **性能测试**:
- 测试大量DataFrame数据的序列化性能
- 验证100行限制是否合理
3. **边界测试**:
- 测试包含异常数据的分析结果
- 测试空DataFrame的处理
- 测试None值的处理
## 相关文档
- [主力选股批量分析功能说明](./主力选股批量分析功能说明.md)
- [主力选股批量分析历史记录功能说明](./主力选股批量分析历史记录功能说明.md)