将数组外的元素添加到 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
我有一个类似于这个的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