将数组外的元素添加到 csv 输出

Add element outside of array to csv output

我有一个类似于这个的JSON结构:

{
  "results": [
    {
      "title": "Page 1",
      "content": {
        "id": "11111"
      }
    },
    {
      "title": "Page 2",
      "content": {
        "id": "22222"
      }
    },
    {
      "title": "Page 3",
      "content": {
        "id": "33333"
      }
    }
  ],
  "start": 0,
  "limit": 25,
  "size": 3,
  "totalSize": 3,
  "query": "Hello World"
}

我需要的输出是:

"Page 1","11111","Hello World"
"Page 2","22222","Hello World"
"Page 3","33333","Hello World"

我可以通过以下方式从数组中获取元素: cat my.json | jq -r '.results[] | [.title, .content.id] | @csv' 但是如何将数组外部的“查询”元素添加到输出中的每一行?

我尝试了很多选项,但无法正常工作。

使用一个小占位符来存储.query的值,并在将它放入数组

时使用它
.query as $q | .results[] | [.title, .content.id, $q] | @csv

或者将它们放在单独的数组中。 (...) around .results 路径确保,您不会走到下面的路径并仍然停留在顶级节点路径。

(.results[] | [.title, .content.id]) + [.query] | @csv