如何使用 jq 将字典列表合并为一个字典

How to use jq to merge a list of dictionaries into one dictionary

我正在命令行上开发 jq 表达式。 (我打算在python中使用带pyjq的表达式来解析http请求。)

以下命令行:

$ cat some.json | jq '.collection.rows[].rowAnswers | map({ (.refCode) : .answers[0].responseText }) '

结果有两项。

[
  {
    "NAME": "some_name1"
  },
  {
    "CODE": "code1"
  },
  {
    "SERVER"": "server1"
  }
]
[
  {
    "NAME": "name2"
  },
  {
    "CODE": "code2"
  },
  {
    "SERVER"": "server2"
  }
]

这是一个不错的中间步骤。我想将每个词典列表合并到一个词典中。我希望最终结果是:

{
    "NAME": "some_name1"
    "CODE": "code1"
    "SERVER"": "server1"
}
{
    "NAME": "name2"
    "CODE": "code2"
    "SERVER"": "server2"
}

如果这太难了,那么[merge_dict][merge_dict]也很好。

不会有任何按键冲突。此外,这是简化的输出。我想要一个将所有 kv 对合并到一个字典中的表达式。我不想在表达式中硬编码键的实际名称。

谢谢。

根据您的描述,似乎只需将 add 添加到您的管道即可实现您描述的“最终结果”。