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

将多行JSON转指定格式CSV遇'Cannot index string with string "name"'错误

首先,你出错的原因是命令里用了 .[],它试图把每个JSON对象当成数组来索引,这显然不对——你的文件里是一个个独立的JSON对象,不是数组。

以下是正确的jq命令:

生成标准带引号的CSV(推荐,能处理包含逗号/引号的字段值)

jq -r '
  # 仅在处理第一个对象时输出表头
  if input_number == 0 then "name,aliases" else empty end,
  # 捕获name值,遍历每个别名生成对应行
  .name as $name | .aliases[] | [$name, .] | @csv
' filename.json

如果不需要引号(仅适用于字段值不含逗号/引号的情况)

jq -r '
  if input_number == 0 then "name,aliases" else empty end,
  .name as $name | .aliases[] | "\($name),\(.)"
' filename.json

这个命令会:

  1. 先输出表头行
  2. 对每个JSON对象,把name存为变量后,遍历aliases数组的每个元素,生成一行name,别名的CSV记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 04:35:22