站内精选
核心结论

让 AI 只写清洗规则、不写清洗代码,你拿规则表逐条验证,比让它直接跑数更可控。

一句话结论

让 AI 只输出字段清洗规则、不直接改数据,你按规则表逐条验证,JSON 拆表就能稳定交付。

这篇解决什么问题

接口返回的 JSON 嵌套两三层,运营要的是能拉透视表的平表,字段名还是英文缩写。

适用:字段在 20 个以内、结构相对稳定、每天或每周要重复拆一次的场景。

不适用:JSON 里含大量自由文本要语义判断,或者字段几百个且天天变结构。

开始前要准备什么

  • 一个能传文件的 AI 工具,豆包和 DeepSeek 的免费额度足够跑完这一轮
  • 3~5 条真实 JSON 样本,用化名替换手机号、用户 ID 等敏感值
  • 一份目标表格的列名清单,最好来自下游同事实际在用的报表
  • 预计耗时:首次整理规则约 40 分钟,返工改动通常半小时以内

具体怎么做

第 1 步 · 先把样本和目标列摆清楚

别急着问「怎么清洗」,先让模型看懂输入长什么样、输出要什么形状。我习惯把样本压到 3 条,太多反而让它抓不住共性。

你是数据清洗顾问。下面是一段接口返回的 JSON 样本(已脱敏,用户 ID 用 U001 这类化名):
[粘贴 3 条 JSON 样本]
下面是我要交付的目标表格列名:
order_id、下单时间、支付金额(元)、商品名称、收货城市、订单状态、是否退款
请先只做一件事:列出 JSON 里每个字段的路径(用 a.b.c 形式),并对照目标列,标注「可直接映射 / 需要转换 / 缺失」。先不要给清洗方案,也不要写代码。

预期产出:一张字段对照初表,能立刻看出哪几列是硬骨头。

第 2 步 · 让它写规则,不要写代码

这一步是整件事的关键判断。让模型直接写 Python 脚本,你很难判断它哪里错了;让它写成「字段—规则—异常处理」的表格,你能一眼挑出问题。

基于上一步的字段对照,为每个「需要转换」和「缺失」的字段写一条清洗规则。规则表用四列:字段名、原路径、转换规则、异常值怎么处理。
要求:
1. 转换规则写成一句人能读懂的操作,比如「时间戳(毫秒)转成 YYYY-MM-DD HH:mm:ss,按东八区」
2. 金额字段说明单位是元还是分,是否需要除以 100
3. 数组字段说明取第几个元素,或者要不要展开成多行
4. 缺失字段写明是留空、填默认值,还是从其他字段推导
5. 不要写代码,不要写 SQL,只写自然语言规则
如果某条规则你不确定,标上「待确认」并说明你缺什么信息。

预期产出:一张 4 列的清洗规则表草稿,其中会有一两条标着「待确认」,那正是你要去问接口方的地方。

第 3 步 · 用样本反推,让它自证规则

规则写完不代表对。我一般会让它拿第 1 步那 3 条样本,把规则逐条套一遍,输出「套用后的结果」。

请拿刚才的 3 条 JSON 样本,按你的清洗规则表逐条模拟执行,输出一个三行的结果表格,列名用我给的 7 个目标列。
要求:
1. 每一格都要能对应到某条规则
2. 如果某格是空值,说明是被哪条规则置空的
3. 最后单独列出「规则表和样本对不上的地方」,包括类型冲突、单位不一致、字段实际缺失
4. 不要美化结果,宁可暴露问题

预期产出:一份模拟结果表加一份冲突清单,后者往往比规则表本身更有价值。

第 4 步 · 人肉抽检,只查最危险的字段

全量核对不现实。我的做法是挑三类字段重点看:金额、时间、状态枚举。这三类错了,下游报表全废。

我把你模拟结果里的支付金额、下单时间、订单状态三列挑出来人工核对,发现两处问题:
1. 支付金额有 0.01 的偏差,怀疑是分转元时四舍五入位置不对
2. 订单状态出现了「已支付」和「paid」两种写法
请只针对这两处,更新规则表里对应的行,其他行不要动。更新后用一句话说明改了什么。

预期产出:规则表的一次小版本更新,改动范围可控,方便回溯。

第 5 步 · 补上「未来会变」的兜底条款

结构稳定是暂时的。接口加字段、改字段名,半年内大概率会遇到。规则表最后加一列「变更时怎么办」,能省掉后面很多扯皮。

在这张规则表末尾增加一列「接口变更时的应对」,为每个字段写一句:如果上游新增字段、删除字段或改了字段类型,拆表环节应该怎么处理。特别说明哪些字段缺失时必须中断并报错,哪些可以静默留空。用表格形式输出完整规则表,包含原有的所有列。

预期产出:一张可以直接交给下游同事的最终规则表,带兜底说明。

实测记录

项目 情况
耗时 首轮整理加验证约 40 分钟,比手写脚本快不了太多
成本 纯免费额度内完成,未触发付费
返工 返回 3 次,两次是单位问题,一次是数组展开方式
对比手工 手写脚本约 2 小时起步,但规则表能让别人接手
失败点 第一次没给目标列名,它输出的规则完全对不上报表

很多人容易忽略一件事:规则表的价值不在这一次拆表,而在于下次别人接手时不用重问一遍。

最容易错的 3 个地方

  1. 一开始不给目标列名。模型会按它理解的「标准字段」去写规则,回来发现跟报表对不上。纠正:先把下游要的列名贴进去,这一步不能省。
  2. 让它直接生成代码。脚本能跑但结果错了,你排查的时间比写规则还长。纠正:强制它只出自然语言规则,代码你自己写或者另开一轮。
  3. 样本给太多。塞十几条 JSON 进去,模型反而开始总结共性、忽略边界值。纠正:3~5 条足够,宁可多跑几轮换样本。

可复用的东西

五个提示词串起来就是一条流水线:字段对照 → 规则表 → 样本反推 → 定点修正 → 补兜底列。日常用的时候,第 2 步和第 3 步的提示词可以存成固定模板,只替换样本和目标列名。

规则表本身也建议沉淀成一份文件,每次接口变更就在上面改,比散落在聊天记录里靠谱得多。这套方法笨,但交接的时候特别省事。

常见问题解答

模型给的清洗规则看起来很合理,怎么判断它真的对?

别信合理性,用样本反推。让它拿 3 条真实样本按规则模拟执行一遍,输出结果表,重点看空值是被哪条规则置空的。对不上的地方它会自己列出来,那份冲突清单比规则表本身更值得看。

JSON 里的数组字段怎么处理比较好?

先问清楚下游要不要展开成多行。要展开就在规则里写明「按数组元素展开,其余字段复制」,不要展开就写明取第几个元素。这一条不写清楚,模型默认处理方式经常和你的预期相反,尤其订单里带多个商品的场景。

字段有几十个,也照这个流程走吗?

不太合适。字段多且变动频繁时,人工逐条验证的成本会超过收益,不如先把字段分组成几个主题块,一次只处理一块。我一般单轮控制在 20 个字段以内,超出就拆批次。

小程序阅读免费
微信扫码进入小程序,按岗位找 AI 实操步骤
微信扫码进小程序
按岗位找 AI 实操步骤 · 提示词可收藏

发表回复

后才能评论