让 jq 检测 influxdb json 输出中的错误
have jq detect errors in influxdb json output
我有一个 jq
过滤器,可以将 (influxdb
) json 输入转换为 csv 以供进一步解析。但是,此过滤器在 influxdb
returns 错误时失败。我正在尝试改进我的 jq 过滤器来检测这一点,但是我无法让它工作。我需要 之类的东西,但似乎无法正常工作。有什么想法吗?
示例数据
{"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
根据您的尝试,并假设每个对象包含 results
或 error
,应该这样做:
( .results[0].series | .[0].columns, .[]?.values[] ) // [ .error ] | @csv
我有一个 jq
过滤器,可以将 (influxdb
) json 输入转换为 csv 以供进一步解析。但是,此过滤器在 influxdb
returns 错误时失败。我正在尝试改进我的 jq 过滤器来检测这一点,但是我无法让它工作。我需要 之类的东西,但似乎无法正常工作。有什么想法吗?
示例数据
{"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
根据您的尝试,并假设每个对象包含 results
或 error
,应该这样做:
( .results[0].series | .[0].columns, .[]?.values[] ) // [ .error ] | @csv