我正在使用Jq将我的Json数据转换为.CSV格式但无法运行它

时间:2016-09-29 02:38:00

标签: json csv jq

输入: -

 {"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的窗口平台。

1 个答案:

答案 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或明确指定密钥名称。