You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Miller将CSV转JSON时如何清理空字段?

解决方案

完全可以用Miller实现这两个需求,而且不需要拆分两次命令,一次就能完成所有操作。核心是利用Miller的filter和map函数针对性处理空值:

完整命令

mlr --icsv --ojson --jflatsep '/' --jlistwrap \
  remove-empty-columns \
  then filter -x Properties '$value != ""' \
  then map 'if ($value == "") { return null } else { return $value }' \
  file.csv > file.json

各步骤作用

  1. remove-empty-columns:先清理掉CSV中完全为空的列,和你之前的操作一致;
  2. filter -x Properties '$value != ""':
    • -x Properties指定只对合并后的Properties数组进行过滤;
    • 直接移除数组中所有空字符串元素,只保留有效属性值;
  3. map 'if ($value == "") { return null } else { return $value }':
    • 遍历除Properties外的所有字段,把空字符串替换为JSON规范的null值;
  4. 全程保留--jflatsep '/'和--jlistwrap参数,确保Properties/X列正常合并为数组。

效果验证

执行这条命令后,输出的JSON会完全匹配你的期望:

  • Properties数组里的空字符串被全部移除;
  • 像Type这类字段的空值会被替换成null;
  • 其他非空字段保持原样,同时原CSV文件不会被修改(无需-I参数)。

内容的提问来源于stack exchange,提问作者Aldoro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:15:37