# ERP 全年文件同步 three_year_monthly 的月键格式坑（2026-08-21）

## 坑

`mcp_kpi_pipeline.py` 同步 `three_year_monthly.json` 的 2026 月数据时，键名必须用 **`str(int(m[5:7]))`** 去掉前导零，不能用 `m[5:7]`：

```python
# ❌ 错误：m='2026-01' → m[5:7]='01'，产生 '01' 前导零键
tym['2026'][m[5:7]] = round(monthly_total[m], 2)

# ✅ 正确：'01' → '1'
tym['2026'][str(int(m[5:7]))] = round(monthly_total[m], 2)
```

## 症状

`three_year_monthly.json` 的 `2026` 对象里**同时存在 `'1'` 和 `'01'` 两个键**。前端 `renderThreeYearMonthly()` / `getKPI()` 读 `t2026['1']` 拿到的仍是旧值（键 '1' 没被覆盖），而新写的值在键 '01' 里——数据看似更新了，实际页面显示不变。

## 修复

1. 写脚本用 `str(int(...))` 去前导零。
2. 若已产生重复键，清理：把 `'0X'` 键的值合并到 `'X'` 键，删除 `'0X'` 键（参考会话中的清理脚本）。

## 背景

`three_year_monthly.json` 的键是 `'1'`~`'12'`（无前导零，历史约定）。2024/2025 年数据也是同样键格式。任何写这个文件的脚本都要遵守。
