一句话结论
让 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 个地方
- 一开始不给目标列名。模型会按它理解的「标准字段」去写规则,回来发现跟报表对不上。纠正:先把下游要的列名贴进去,这一步不能省。
- 让它直接生成代码。脚本能跑但结果错了,你排查的时间比写规则还长。纠正:强制它只出自然语言规则,代码你自己写或者另开一轮。
- 样本给太多。塞十几条 JSON 进去,模型反而开始总结共性、忽略边界值。纠正:3~5 条足够,宁可多跑几轮换样本。
可复用的东西
五个提示词串起来就是一条流水线:字段对照 → 规则表 → 样本反推 → 定点修正 → 补兜底列。日常用的时候,第 2 步和第 3 步的提示词可以存成固定模板,只替换样本和目标列名。
规则表本身也建议沉淀成一份文件,每次接口变更就在上面改,比散落在聊天记录里靠谱得多。这套方法笨,但交接的时候特别省事。
常见问题解答
模型给的清洗规则看起来很合理,怎么判断它真的对?
别信合理性,用样本反推。让它拿 3 条真实样本按规则模拟执行一遍,输出结果表,重点看空值是被哪条规则置空的。对不上的地方它会自己列出来,那份冲突清单比规则表本身更值得看。
JSON 里的数组字段怎么处理比较好?
先问清楚下游要不要展开成多行。要展开就在规则里写明「按数组元素展开,其余字段复制」,不要展开就写明取第几个元素。这一条不写清楚,模型默认处理方式经常和你的预期相反,尤其订单里带多个商品的场景。
字段有几十个,也照这个流程走吗?
不太合适。字段多且变动频繁时,人工逐条验证的成本会超过收益,不如先把字段分组成几个主题块,一次只处理一块。我一般单轮控制在 20 个字段以内,超出就拆批次。
本网站的部分内容可能来源于网络或用户投稿,仅供大家学习与参考,如有侵权,请联系客服: hhxmw778 进行删除处理。
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
教程如引导您添加微信或有另外收费服务,请自行甄别!
如遇充值环节或绑定支付账户或输入支付密码之类的异常步骤,建议停止操作!本站不对操作项目的损失负责!
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现任何资源有问题请向站长举报下架
(手机微信用户建议用默认浏览器打开,可体验完整功能)
