Python 自动化接单实战(一):把 CSV 需求做成配置驱动解析器

很多 Python 自动化需求看上去不同,拆开后却很相似:客户给一批 CSV 或 JSON 数据,希望改字段名、转换类型、补默认值、做校验,再输出一份干净文件。

真正麻烦的地方通常不是写出第一版脚本,而是规则经常变化。如果字段名、单位、阈值都写死在代码里,客户每调整一次格式,都要重新修改和部署。更稳妥的做法是把规则放到外部配置中,让核心程序只负责读取规则并执行。

我把这个思路做成了一份公开、可运行的最小样品:

一、先把"会变的规则"从代码里拿出来

样品中的配置文件用一行描述一个字段规则:

csv 复制代码
source,target,type,required,default,trim,case,multiplier,offset,min,max,choices
device_id,id,string,true,,true,upper,,,,,
temperature_c,temperature_f,float,true,,true,,1.8,32,-40,212,
status,status,string,true,unknown,true,lower,,,,,online|offline|unknown

这几行配置表达了三类常见需求:

  1. device_id 改名为 id,去掉首尾空格并转成大写;
  2. 摄氏温度乘以 1.8 再加 32,输出华氏温度;
  3. 状态为空时使用 unknown,并限制在指定枚举范围内。

这样做的价值不是少写几行代码,而是把"业务变化"变成"修改配置"。字段顺序、目标名称、默认值和阈值变化时,不需要碰核心处理逻辑。

二、把类型转换与数据校验放在同一条流水线

数据处理脚本最常见的问题,是转换成功了却没有验证结果。例如字符串 12.5 被强行转成整数,空值被默默写成 0,或者状态字段出现了未定义的新值。

样品把每个字段依次经过以下步骤:

text 复制代码
读取原始值
  -> 判断是否缺失
  -> 应用默认值
  -> 去除首尾空格
  -> 类型转换
  -> 大小写或数值换算
  -> 最小值、最大值、枚举校验
  -> 写入目标字段

当某一行出现问题时,程序不会只打印一句模糊的"转换失败",而是记录行号、字段和具体原因。合格数据进入输出文件,错误记录进入独立 JSON 文件,方便后续人工核验或二次处理。

三、用可重复测试证明"能运行"

展示代码时,只有截图和描述远远不够。一个可交付的小型自动化至少应包含:

证据 作用
输入样例 说明程序面对的数据结构
配置样例 说明哪些规则可调整
预期输出 明确正确结果是什么
自动测试 修改代码后快速判断是否破坏原功能
README 让没有参与开发的人也能运行

这个样品的测试会真正启动命令行程序,读取 CSV 配置和输入,再把实际输出与 expected.json 比较。运行方式如下:

bash 复制代码
cd demos/config-driven-parser
python -m unittest -v

主流程也可以直接执行:

bash 复制代码
python parser.py \
  --config config.csv \
  --input input.csv \
  --output output.json \
  --errors errors.json

成功时会输出:

text 复制代码
processed=3 accepted=3 rejected=0

四、从免费样品扩展成真实交付

最小样品解决的是通用骨架,真实项目通常还会增加以下能力:

  • 读取和生成 Excel 文件;
  • 批量处理多个目录或压缩包;
  • 日期、金额、单位和字段依赖规则;
  • 图形界面或网页上传入口;
  • 定时执行、结构化日志与失败重试;
  • 打包成 Windows 可执行文件;
  • 输出处理统计和异常报告。

报价前应先确认四件事:输入样例、期望输出、数据规模和验收标准。范围清晰的小任务,可以拆成一个 24--72 小时内可验证的固定交付;规则还没说清楚时,先做最小样例验证,比直接堆功能更省时间。

如果你手里也有重复处理 CSV、Excel 或 JSON 的工作,可以提交一份脱敏样例和期望结果,我会先免费判断是否适合自动化,再确认范围与价格:

https://github.com/jhhjwei/codex-runner/issues/new?template=code-fix-request.yml

请勿在公开链接中提交密码、Cookie、Token、私钥或真实个人数据。


📌 本文用配置驱动解析器展示了如何把 CSV 需求拆成可运行、可测试、可验收的自动化样品。

💬 你最想先处理 CSV、Excel 还是 JSON 中的哪类重复数据问题?

👉 关注《Python 自动化接单实战》,下一篇继续把同一套规则模型扩展到 Excel 批量清洗与异常报告。

参考来源

相关推荐
jay神19 小时前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
程序员黑豆1 天前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
bugcome_com1 天前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
mldong1 天前
"applicant" 契约:退回发起人的闭环设计
java·架构
月华路1 天前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制
java·开发语言
XLYcmy1 天前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
虎头金猫1 天前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
从零开始学习人工智能1 天前
WSL2部署CUDA12+cuDNN9踩坑实录:ONNX Runtime GPU推理环境搭建全流程
python
gugucoding1 天前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
m0_380743871 天前
从零调用 Claude 教程
开发语言·python·node.js