Ratiel
Ratiel

Reputation: 85

JQ join two arrays

I'm trying to parse some json output from an API. I've got two arrays like this:

  {
    "data": [
      {
        "average": null,
        "count": null,
        "maximum": 100.0,
        "minimum": null,
        "timeStamp": "2020-09-01T00:30:00+00:00",
        "total": null
      },
      {
        "average": null,
        "count": null,
        "maximum": 100.0,
        "minimum": null,
        "timeStamp": "2020-09-02T00:30:00+00:00",
        "total": null
      },
      {
        "average": null,
        "count": null,
        "maximum": 97.0,
        "minimum": null,
        "timeStamp": "2020-09-03T00:30:00+00:00",
        "total": null
      }
    ],
    "metadatavalues": []
  },
  {
    "data": [
      {
        "average": null,
        "count": null,
        "maximum": 69.0,
        "minimum": null,
        "timeStamp": "2020-09-01T00:30:00+00:00",
        "total": null
      },
      {
        "average": null,
        "count": null,
        "maximum": 72.0,
        "minimum": null,
        "timeStamp": "2020-09-02T00:30:00+00:00",
        "total": null
      },
      {
        "average": null,
        "count": null,
        "maximum": 71.0,
        "minimum": null,
        "timeStamp": "2020-09-03T00:30:00+00:00",
        "total": null
      }
    ],
    "metadatavalues": []
  }
]

I'd like to take timestamp from the "data" in the first array, and join it with the maximum value from the first and the second array, like this:

"2020-09-01T00:30:00+00:00", 100, 69
"2020-09-02T00:30:00+00:00", 93, 72
"2020-09-03T00:30:00+00:00", 97, 71

What I've got now is jq -c [.[0].data[].timeStamp, .[0].data[].maximum, .[1].data[].maximum] that returns everything in one array

Upvotes: 0

Views: 109

Answers (1)

peak
peak

Reputation: 116870

Using transpose makes for a compact solution:

[.[] | .data]
| transpose[]
| [.[0].timeStamp, (.[]|.maximum)]
| @csv

With the given input, the output, however, would be:

"2020-09-01T00:30:00+00:00",100,69
"2020-09-02T00:30:00+00:00",100,72
"2020-09-03T00:30:00+00:00",97,71

Upvotes: 1

Related Questions