Как конвертировать JSON в TSV, используя JQ в Unix? - PullRequest
0 голосов
/ 10 сентября 2018

Мне нужно преобразовать этот JSON в формат TSV. У меня есть исходный файл, подобный этому:

{
  "event": "log",
  "timestamp": 1535306331840,
  "tags": [
    "info"
  ],
  "data": {
    "_id": "A301180827005852329209020",
    "msisdn": "6282134920902",
    "method": "get",
    "url": "/api/tcash/balance",
    "timeTaken": 32,
    "channelid": "UX"
  },
  "pid": 7920
}

Затем я хочу преобразовать его в TSV, которые состоят из столбца ниже:

event, timestamp, tags, _id, msisdn, method, url, timeTaken, channelID, pid 

1 Ответ

0 голосов
/ 10 сентября 2018

Вам просто нужно создать массив атомарных значений. Поскольку .tags не является атомарным, в дальнейшем я буду предполагать (как предложено @chepner), что мы можем использовать .tags|join(","), хотя вы можете захотеть использовать что-то еще, например .tags|@csv:

[.event, .timestamp, (.tags | join(","))]
+ (.data|[._id, .msisdn, .method, .url, .timeTaken, .channelID])
+ [.pid]
| @tsv 
...