Estrarre prima e ultima riga di un json e creare unico file CSV

Estrarre prima e ultima riga di un json e creare unico file CSV.

A cura di Totò Fiandaca  | issue #197 | guida/e Andrea Borruso


Caso d’uso

Ho centinaia di file json cosi strutturati:

{
  "name": "from_base64",
  "groups": ["Conversions"],
  "type": "function",
  "description": "Decodes a string in the Base64 encoding into a binary value.",
  "arguments": [{
    "arg": "string",
    "description": "the string to decode"
  }],
  "examples": [{
    "expression": "from_base64('UUdJUw==')",
    "returns": "'QGIS'"
  }],
  "tags": ["encoding", "base", "binary", "decodes"]
}

vorrei estrarre la prima e ultima riga:

"name": "from_base64"
"tags": ["encoding", "base", "binary", "decodes"]

e creare un unico file CSV cosi strutturato:

name tags
from_base64 encoding, base, binary, decodes
$scale denominator, contexts, current, scale, canvas, map
…..

soluzione

con Miller 6:

mlr --ijsonl --ocsv cut -f name,tags  then put '$tags=joinv($tags,",")'  input.json >out.csv

Riferimenti utili

Ultima modifica 10/02/2022: add due ricette (940cfc4)