FISHGAP / REPORT AUTOMATION
自动化日报上线前,
先查哪五件事?
先确认输入能解释、日期能归属、结果能核对、重跑不重复、失败有人接手。五项都有实际证据,再把手工日报交给定时流程。
这是一条围绕已有文章和工具整理的实践路线。下方清单是 Fishgap 的工程建议,Python 文档只支持对应的数据解析和时间语义说明。它不能替代你的业务口径、权限检查或真实环境验收。
01 · 输入能解析,还要符合业务规则
先写明文件编码、列名、分隔符、必填字段、金额单位和允许的空值。Python 的 CSV 读取通常返回字符串;读取成功不代表金额已经转换成数字。核对 CSV 官方说明。
JSON 也需要在解析后检查字段是否存在、类型是否正确,以及业务允许的范围。面对不可信输入,应限制解析的数据大小;这是 JSON 官方文档明确提醒的事项。
留下证据:一份输入约定、一条合法样本,以及缺字段、错误类型和空值各一条测试结果。
02 · 先解释时刻,再判断它属于哪一天
不带可解释时区的时间不能自动确定它对应的时刻。先确认输入是 naive 还是 aware,再按照约定的业务时区取日期。Python 的 timezone 表示固定偏移;地区规则需要结合适当的时区数据处理。见 datetime 官方文档。
以下为固定偏移 +08:00 的虚构练习,不测试夏令时:
| 输入时间 | 业务日期 | 应有结果 |
|---|---|---|
| 2026-10-29T15:59:59Z | 2026-10-29 | 归入 29 日 |
| 2026-10-29T16:00:00Z | 2026-10-30 | 归入 30 日 |
| 2026-10-30T00:00:00+08:00 | 2026-10-30 | 与上一条为同一时刻 |
| 2026-10-30T00:00:00 | 未确定 | 缺少来源时区约定,交人工核对 |
- 阅读:跨时区日报为什么取错日期?
- 体验:跨时区日报固定偏移日期校验器(只验证工具支持的固定偏移场景)
留下证据:业务时区、午夜边界样本及无法安全归类的记录清单。
03 · 核对预期输出,不只查看“执行成功”
选一份能人工算清的小样本,事先写好应纳入哪些记录、哪些记录需要复核、各单位应分别得到什么结果。检查正常输入,也检查缺失、重复和边界输入。把程序输出与预期逐项对照,再记录人工复核耗时。
留下证据:输入、预期、实际、差异及处理结论。清单勾选本身不等于测试通过。
04 · 相同输入重跑,不应重复产生业务结果
给日报明确业务日期、数据范围和版本标识。用同一批输入运行两次,比较产物数量、记录数量和汇总结果;如果第二次会重复写入或重复发送,先修复去重规则。源数据确实变化时,要明确是更新原版本还是产生可追踪的新版本。
查看本站复盘:检索索引如何从 205,939 行回到 369 条,并下载只在内存运行的重复同步小实验。
留下证据:两次运行的编号、同一输入的标识及结果对比。这里只给出验证方法,没有假定现有工具已经替你的生产流程实现幂等。
05 · 失败后,接手者能找到问题和恢复方式
事先写清谁负责确认、在哪里查看错误、哪些步骤可以重试,以及何时改用人工流程。避免无限重跑;恢复后先核对是否重复写入,再补齐缺失结果。
留下证据:一次模拟失败、一次接手记录和一次恢复后的结果核对。
带着证据决定下一步
如果五项都有可核对结果,先选择低风险、小范围的数据试运行;任一项未完成,就把它列为下一项工作。投入判断还应计入维护、复核和失败处理时间。