【发布时间】:2020-03-21 19:56:26
【问题描述】:
我有一个 jq 过滤器,它将 (influxdb) json 输入转换为 csv 以供进一步解析。但是,当influxdb 返回错误时,此过滤器会失败。我正在尝试改进我的 jq 过滤器来检测这个,但是我不能让它工作。我需要像https://stackoverflow.com/a/41829748 这样的东西,但似乎无法让它工作。有什么想法吗?
示例数据
{"results":[{"statement_id":0,"series":[{"name":"energyv3","columns":["time","value"],"values":[["2015-07-30T23:59:00Z",56980800],["2015-07-31T23:59:00Z",95108400]]}]}]}
{"error":"error parsing query: found EOF, expected integer at line 1, char 34"}
期望的结果
"\"time\",\"value\""
"\"2015-07-30T23:59:00Z\",56980800"
"\"2015-07-31T23:59:00Z\",95108400"
"error parsing query: found EOF, expected integer at line 1, char 34"
即
- 对于使用
.results键的输入:数据格式为 csv(工作正常) - 对于使用
.error键的输入:只有错误字符串(不起作用)
当前使用的过滤器
select(.results) | (.results[0].series[0].columns), (.results[0].series[0].values[]) | @csv
尝试组合过滤器
((select(.error) | {error}) // null) + select(.results) | (.results[0].series[0].columns), (.results[0].series[0].values[]) | @csv
【问题讨论】: