读取输入sample_orders.csv
WAIT企业订单数据校验工具
把一份
混乱的表格,
变成可追溯的任务。
OrderSentry 逐行读取订单 CSV,校验字段、金额、状态、时区与重复值。它不会悄悄覆盖文件,也不会在失败后只留下一句“运行出错”。
查看一次完整演练 ↘INPUTCSV / UTF-8-SIGOUTPUTCSV + JSON + JSONL + LOGSAFETYDRY-RUN / NO OVERWRITE / ATOMIC WRITE
逐行校验字段 / 金额 / 状态 / 时间 / 重复
WAIT原子写出临时文件 → 校验 → 最终文件
WAIT生成报告统计 / 失败明细 / 日志
WAIT等待任务。运行前不会创建或修改任何文件。
总量—
成功—
跳过—
失败—
耗时—
输入输出契约
每一列、每一种失败,
都要提前说清楚。
| 字段 | 类型与约束 | 异常处理 |
|---|---|---|
| order_id | 非空字符串,任务内唯一 | 空值失败,重复跳过 |
| amount | 十进制定点数,≥ 0 | 格式或负数失败 |
| status | pending / paid / shipped / cancelled | 未定义状态失败 |
| created_at | ISO 8601;无时区按配置补齐 | 无法解析则失败 |
保持稳定字段顺序,金额保留两位小数,时间统一为 UTC ISO 8601。
任务编号、总量、成功、跳过、失败、耗时、输入输出路径和退出状态。
记录行号、错误分类和可理解原因,不写入不必要的敏感原文。
SAFE BY DEFAULT
同一个任务可以重跑;
错误可以定位;
中断不会留下伪装成成功的文件。
- 不硬编码路径所有路径来自 CLI 参数或配置,统一使用 pathlib。
- 不提交密钥运行时配置与环境变量分离;样例配置不含凭据。
- 不静默覆盖输出存在时退出;只有显式 `--overwrite` 才允许替换。
- 不整表进内存CSV 逐行处理,集合只保存必要的稳定唯一键。
完整工程交付
不是一段代码,
是一套可以交接的运行方式。
python -m order_sentry \
--input samples/orders_mixed.csv \
--output outputs/orders_clean.csv \
--config config.example.json \
--dry-run