-1
面对一个简单需求的问题。jq - jq过滤器输出为CSV时的额外空间
- 请使用JQ和输出转换成CSV文件中的变量
- 解析从可变JSON一个CURL请求和存储。
当我尝试这样做时,出于某种原因,我从第二行获取文件的额外前导空间。有没有办法配置jq不这样做?
代码:
output=`curl -v -k -H 'Content-Type: application/json' '<<URL>>' -d '<<PARAMS>>'`
csvOutput=`echo $output | jq --raw-output '.result .items[]|[.name,.key,.created,.updated]|@csv'`
echo $csvOutput >> out.csv
以下代码(全部在一行上)没有问题。但是我需要一个变量的curl输出来执行一些检查,所以这个选项没有帮助。
echo "$(curl -v -k -H 'Content-Type: application/json' '<<URL>>' -d '<<PARAMS>>" | jq -r '.result .items[]|[.name,.key,.created,.updated]|@csv' >> out.csv
奇怪的是,当我从文件中读取的JSON输出(从卷曲响应取),然后申请JQ过滤器,我看不出问题。
cat response.json | jq -r '.result .items[]|[.name,.key,.created,.updated]|@csv' > out.csv
response.json(格式化):
{
"result": {
"total_items": 22,
"total_pages": 1,
"items_per_page": 1000,
"current_page": 1,
"items": [
{
"key": "1",
"name": "Name 1",
"created": "2016-12-20T08:51:13Z",
"updated": "2016-12-20T09:29:08Z"
},
{
"key": "2",
"name": "Name 2",
"created": "2016-12-20T08:51:13Z",
"updated": "2016-12-20T09:29:08Z"
},
{
"key": "3",
"name": "Name 3",
"created": "2016-12-20T08:51:13Z",
"updated": "2016-12-20T09:29:08Z"
}
]
},
"id": 1
}