代码之家  ›  专栏  ›  技术社区  ›  trubex

如何在unix中使用jq将JSON转换为tsv?

  •  0
  • trubex  · 技术社区  · 6 年前

    我需要把这个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
    }
    

    event, timestamp, tags, _id, msisdn, method, url, timeTaken, channelID, pid 
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   peak    6 年前

    你只需要构造一个原子值数组。自 .tags .tags|join(",") .tags|@csv

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