【问题标题】:Issue when converting JSON files to NDJSON with jq not sure how to fix this使用 jq 将 JSON 文件转换为 NDJSON 时出现问题,不确定如何解决此问题
【发布时间】:2020-04-17 10:31:48
【问题描述】:

我尝试将同一目录中的大量 JSON 文件转换为 NDJSON,以便将它们加载到分析工具中。

我使用 jq 以便使用以下命令将它们转换为一个文件。

for file in *; do cat $file |jq -c '.[]' >> testNDJSON.json; done

原始JSON结构如下

{"user_id":"user_id_value",
   "user_properties": {
     "key": "value",
     "key": "value",
     "key": "value"
    }
}

使用我的命令将数据写入文件但格式为

user_id_value, {"key": "value", "key: "value", "key": "value"}

所以基本上用户 id 和 user_properties 都丢失了键 + 外部 JSON 括号。我不确定如何在 jq 中解决这个问题

我想要得到的是我在同一个文件中逐行拥有的相同 JSON 结构。我不明白为什么我上面的命令会从 JSON 中删除最大的键和括号。

{"user_id":"user_id_value", "user_properties": { "key": "value", "key": "value", "key": "value"} }

【问题讨论】:

  • 请将该示例输入的所需输出(无描述)添加到您的问题(无评论)。
  • 您的命令似乎运行良好。它正确输出:{"user_id":"user_id_value","user_properties":{"key":"value"}} {"user_id":"user_id_value","user_properties":{"key":"value"}} {"user_id":"user_id_value","user_properties":{"key":"value"}}
  • 让我检查一下原始文件中是否有一些有趣的东西,因为这是我所期望的,但不是我得到的
  • 使用有效的 JSON:我建议删除 -c。您的 JSON 无效,其尾随 ,
  • 好吧,也许我的环境中有些东西导致了这种情况。删除 -c 只是导致输出不是 NDJSON 它仍然丢弃它们的键并且输入是有效的 JSON

标签: bash jq


【解决方案1】:

这个问题将被关闭。我上面的代码是正确的。我的 bash 中有环境配置,这导致了我遇到的错误。

我要感谢 @Cyrus 和 @Antoine Pietri 提供帮助的 cmets。通过这个了解更多关于 jq 工具的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    相关资源
    最近更新 更多