CSV 为什么同时有 Rating 和 Circle,两列为什么会互相矛盾
SlateX 的 CSV 是逐机位一行,没有机位的条也会输出一行;当前表头与列序写死,新列只能往既有顺序的末尾追加,不能把现有列重排。Rating 和 Circle 看起来都像在描述同一件现场档位,但它们并不是两路现场状态:两列都从档位数值派生,而且派生条件不同,所以同一条记录可以在两列里给出看起来不一致的结果。
Rating与Circle都是从档位数值派生的交付字段,不应把它们当成两路独立的现场圈选状态。
CSV 的行形态先按机位展开
一条 Take 有几台机位,CSV 就按机位展开成对应的数据行;如果这一条没有机位,仍然会输出一行,只是机位相关列的缺值形态各不相同:有的留空,有的落到默认值,接收方应逐列核对。表头使用固定英文列名,列序也由常量定义,不会跟 App 界面语言切换。
这一点与《CSV 交付比 ALE 多带什么、少带什么》的口径一致:CSV 的字段结构要按文件本身核对,不能从另一种交付文件推断它会带有同一套列。
Rating 把档位数值翻成固定英文文本
Rating 的映射是固定的:数值 4 写 Circle,3 写 Keep,2 写 Hold,1 写 N/G,没有标档时写空串。这组交付文本是英文常量,不跟界面语言变化。
因此,Rating 是“档位数值的文本化结果”,不是另读一份现场状态。中文界面、英文界面或其他界面语言可以有各自显示文案,但 CSV 这里仍按固定英文词输出。
Circle 只检查是不是第 4 档
Circle 的规则更窄:只有档位数值等于 4 时写 TRUE,其他情况全部写 FALSE。这列没有空值分支,因此未标档、Keep、Hold、N/G 都会得到一个明确的假值,而不是留空。
这就产生了题眼里的矛盾。现场把一条标为 Keep 时,内部还有一个圈选状态位会在某些写入路径里一起置真;但 CSV 的 Circle 并不读取那个状态位,它只看档位是不是 4,所以这一条在 CSV 里会是 Rating=Keep、Circle=FALSE。
两列都不读现场状态或圈选标志
Rating 和 Circle 都不读取现场状态文本,也不读取那个内部圈选状态位。它们只是从同一个档位数字走两套不同的派生规则。因此接收方不能把 Circle 列解释成“现场是否圈选”的直接记录,也不能把两列当作互相校验的独立来源。
能下的结论只能是:档位在不同交付物里的可见形态并不相同,这里给出的只是 CSV 两列各自的来源。这两列都不携带那个内部状态位,所以既不能把 Circle 还原成现场圈选,也不能反过来说现场状态完整地跟着 CSV 走。
Keep 条可以同时得到Rating=Keep与Circle=FALSE;这是两套派生条件不同,不是两路现场状态互相否定。
CSV 还有两条需要同时看的形态边界
表头由常量直接拼接,不经过字段转义;数据字段里的换行与制表符会先被压成空格,而不是保留换行后靠引号包裹。因此不能把这份输出概括成“符合 RFC4180”。这里说的是当前生成形态,不替任意下游表格或剪辑系统判断它会怎样解释文件。
列名也是固定英文常量,不会跟着 App 语言切换。《ALE 每一列的值从哪里来》和《拿到 ALE,先核对这些字段》强调的接收原则在这里同样成立:接收方应按自己的导入模板逐列核对真实列名、值形态与来源。
FAQ
Rating 会跟着界面语言变化吗?
不会。CSV 里的档位文本是固定英文常量,未标档时 Rating 写空串。
Circle 为空是不是表示没有圈选?
Circle 没有空值分支。档位等于 4 写 TRUE,其他情况写 FALSE。
为什么 Keep 会得到 Circle=FALSE?
因为 Circle 只检查档位是不是 4;Keep 对应的是另一档,因此会写 FALSE,即使那个内部圈选状态位在写入路径里为真。
可以把 Circle 当成现场圈选状态吗?
不能这样解释。它只由“是不是第 4 档”这一条件派生;接收方应结合 Rating 与自己的导入规则核对含义。
上海智独教育科技有限公司 — SlateX。以上数字截至 2026-09-24。