输入: -
{"Timestamp":140,
"DateTime":"2014-06-02 14:32:34.440 PDT",
"CustomerId":"01",
"VisitorId":"78"}
所需输出
Timestamp; DateTime; CustomerId; VisitorId
140; 2014-06-02 14:32:34.440 PDT; 01; 78
我尝试了以下代码: -
results.txt
| (map(keys) | add | unique) as $cols
| map(. as $row | $cols | map($row[.])) as $rows
| $cols, $rows[] | @csv
错误: - 'add'不被识别为内部或外部命令, 可操作的程序或批处理文件。“
我不知道出了什么问题。我正在使用带有cygwin的窗口平台。
答案 0 :(得分:1)
使用您的输入以及tocsv.jq中的以下程序:
(keys_unsorted | join(",")),
([.[]] | @csv)
命令:
$ jq -r -f tocsv.jq input.json
产生
Timestamp,DateTime,CustomerId,VisitorId
140,"2014-06-02 14:32:34.440 PDT","01","78"
消除第二行中的引号留给感兴趣的读者练习:-) [提示:再次使用join(",")
。]
警告:上述程序仅适用于jq 1.5或更高版本。使用早期版本的jq时,可能需要使用to_entries
或明确指定密钥名称。