資料集差異(資料列變更報告)

框架能比對*畫面/快照*(screen_state.diff_snapshotsdiff_screenshots),但沒有任何東西能依 鍵比對兩個**表格式**資料列集合 —— 也就是經典的「今天的萃取相較昨天變了什麼」報告。本功能為兩側建立 鍵索引,再回報新增 / 刪除 / 變更 / 未變更的資料列以及逐欄變更。

純標準函式庫;不匯入 PySide6。每個函式皆為純函式(輸入列、輸出 dict/list),因此在 CI 中完全 具決定性。

無頭 API

from je_auto_control import diff_rows, cell_changes, summarize_diff, load_rows

old = load_rows("yesterday.csv")
new = load_rows("today.csv")

diff = diff_rows(old, new, "id")          # 或 ["region", "id"]
summarize_diff(diff)                       # {added, removed, changed, unchanged}

for change in cell_changes(old, new, "id"):
    print(change["key"], change["column"], change["old"], "->", change["new"])

diff_rows 為兩個資料列集合建立鍵索引,回傳 {added, removed, changed, unchanged}:added / removed / unchanged 是資料列清單,而 changed 收錄 {key, old, new}``(單欄鍵為純量,複合鍵 list)。鍵重複時以最後一列為準。``cell_changes 把變更的列展開成 {key, column, old, new} 記錄。 summarize_diff 統計每個分類的數量。

執行器命令

AC_diff_rowsold_rows / new_rowskey``(欄名或 JSON 清單)回傳 ``{diff, summary}AC_cell_changes 回傳 {changes}。兩者皆以 MCP 工具(ac_diff_rows / ac_cell_changes)以及 Script Builder 中 Data 分類下的命令提供。