直接回答:不要先改工具设置,而是先把新旧两种输入各取一份可对照的样本,记录字段、层级和分隔方式,确认工具实际接受的是哪一种,再决定是改输入、加转换层,还是放弃这次批量处理。判断依据是样本能否被稳定解析,而不是某次导入是否成功。
对象格式变化通常有三种:字段名变了、层级结构变了、值本身的写法变了。三种原因的处置方式不同,混在一起改容易把原本正确的部分也改坏。
区分方法很简单:把新旧样本并排,逐字段标记“存在但改名”“位置变了”“值格式变了”。标记结果决定后面改哪一层,而不是一次性重写全部规范。
全量导入失败时,错误信息往往只指向第一条坏数据,掩盖了其余问题。更有效的做法是手工构造一份最小样本:只保留两到三条记录,覆盖新旧两种格式,再分别送入当前处理流程。
这个动作的结果会直接决定下一步:如果只是字段名不同,改映射表即可;如果层级不同,需要加一层提取;如果值格式不同,通常在读取后做一次规范化,而不是改原始文件。
规范的价值在于别人能照着检查,而不是描述意图。建议把每条规则写成“字段 + 允许形式 + 反例”,反例比正例更能暴露边界。
假设一份页面清单,旧格式用 title 平铺,新格式用 meta.title。规范里如果只写“需要标题”,执行者仍会各自猜测。写成“标题取自 meta.title,缺失时回退到 title”,才具备可执行性。这里的具体字段名只是示例,实际以你手中样本为准。
格式变化后常见的反常现象是:条目数变少、部分字段为空、排序结果与预期相反。这些现象不能单独证明输入规范错了,也可能是转换脚本、去重规则或读取顺序造成的。
可核对的证据是:保留转换前后的两份中间结果,比较条目数和字段填充率。如果转换前就少了条目,问题在读取;如果转换后才少,问题在转换规则。只有定位到具体环节,修改输入规范才有意义。
改完输入规范,用同一份最小样本再跑一次,并和修改前的输出逐字段比对。重点看三类差异:原本正常的字段是否被改动、原本缺失的字段是否补齐、边界值是否被误判。这一步的结果决定规范是定稿还是继续调整,而不是凭一次成功导入就宣布完成。
如果新旧格式需要长期共存,规范里应明确以哪一种为主格式,另一种通过转换层接入,避免两套写法在同一流程里互相覆盖。