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

如何用jq将JSON数组元素以制表符分隔输出适配sqlite3导入

仅用jq生成SQLite .import兼容的制表符分隔JSON格式

你遇到的报错是因为join()只能拼接字符串,而.value是JSON对象,无法直接和字符串拼接。只需要用tojson函数把对象转换成JSON格式的字符串,就能解决这个问题。

正确的jq命令

echo '[{"a1":{"b1":1,"c1":{"c1":"test","c2":null}}},{"a2":{"b2":1,"c":{"c2":"test","c2":null}}}]' | jq -r '.[] | to_entries[] | [.key | tojson, .value | tojson] | join("\t")'

执行结果

"a1"	{"b1":1,"c1":{"c1":"test","c2":null}}
"a2"	{"b2":1,"c":{"c2":null}}

命令解释

  • -r:输出原始字符串(避免jq默认给整个结果额外添加引号)
  • .[]:遍历顶层数组中的每个对象元素
  • to_entries[]:将每个对象转换为{key: "...", value: ...}结构并展开为单独条目
  • .key | tojson:将key转换为带双引号的JSON字符串,匹配你想要的格式
  • .value | tojson:将value对象压缩为单行JSON字符串
  • join("\t"):用制表符拼接两个字符串,生成符合SQLite .import要求的每行一条记录格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:45:27