解析具有多个JSON的JSON文件

时间:2016-11-19 08:49:37

标签: json parsing curl awk sed

我通过并行运行多个curl语句(对服务的GET请求)创建了一个JSON文件作为响应。

现在,当我尝试使用python解析JSON文件时,它失败,因为文件附加了多个JSON

错误:

错误:第1行的解析错误: ... CT_AGGREGATE “}]}]}]} {” serviceResponseTim ----------------------- ^ 期待'EOF','}',',',']',得到'{'

文件中的示例:

{“serviceResponseTime”:510,........... .......:[{ “的categoryId”:28162 “metricValue”:97, “天”: “NONE”, “metricMappedType”: “PRODUCT_AGGREGATE” 的}]}]}]} {“serviceResponseTime “:387,” 产品 “:[{” productReferenceId“:...................

如您所见,这些是从2个卷曲语句获得的2个响应,但是当我使用xargs并行运行它时,它将输出附加在1行。

现在我的问题是解析这个文件。

任何人都可以建议一种方法将curl命令的输出放在文件中的单独行中。

或者粗略的方式,我认为如果我可以从文件的开头提取部分直到“}]}]}]} {”,从当前文件切割并将其放入另一个文件并运行JSON解析器该文件只有1个JSON o / p。在我们从中删除每个JSON之后,在循环中重复此操作,直到原始文件为空。现在我的问题是我无法从行的开头提取到}]}]}}} {。

此外,所有JSON o / ps都附加在一行中,并且不在单独的行上,否则我会逐行阅读。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我们假设你有这个输入文件:

{"name": "foo"}{"name": "bar"}

您可以使用jq命令:

jq -s . input.file

将input.file传输到:

[
  {
    "name": "foo"
  },
  {
    "name": "bar"
  }
]

我希望有帮助