Conversione fra CSV e JSON Lines (JSONL)

Converte in entrambi i sensi fra i file CSV e il formato JSON Lines, cioè JSONL, con un oggetto per riga. Il carattere separatore è a scelta e le righe con chiavi disallineate sono gestite automaticamente. La conversione avviene interamente nel navigatore e nulla viene trasmesso ad alcun servente.

Corrispondenza fra le righe del CSV e quelle del JSONL

Riga d'intestazione e riga di dati del CSV name,age,city
Alice,30,Tokyo
JSONL risultante (un oggetto per riga) {"name": "Alice", "age": "30", "city": "Tokyo"}

Usando come chiavi i nomi delle colonne dell'intestazione, ogni riga di dati del CSV diventa un oggetto JSON scritto su una sola riga di JSONL. Nel verso opposto, da JSONL a CSV, l'intestazione è formata dall'unione di tutte le chiavi comparse nelle righe e i valori mancanti restano vuoti.

Consigli

  • Nella conversione da JSONL a CSV, anche se il numero e l'ordine delle chiavi variano da riga a riga, l'intestazione è costruita con l'unione di tutte le chiavi comparse e le colonne vengono allineate automaticamente.
  • Le colonne con intestazione vuota o ripetuta prendono automaticamente una chiave nella forma col seguito dal numero di colonna, oppure con il suffisso _2, così da evitare valori perduti o sovrascritti.
  • Anche quando il valore è un numero, un valore logico, un oggetto annidato o un vettore, nella cella del CSV viene scritto come testo: il file si apre quindi senz'altro in Excel dopo la conversione.
  • Usandolo insieme agli strumenti affini di conversione da CSV a JSON e fra JSONL e vettori JSON potete muovervi liberamente fra i tre formati.
  • L'analizzatore è conforme alla norma RFC 4180 e gestisce virgole e ritorni a capo nelle celle racchiuse fra virgolette doppie: anche i file CSV più complessi prodotti da Excel si convertono correttamente.

Domande frequenti

Il CSV si presta a essere aperto in un foglio di calcolo per conteggi e verifiche, mentre il JSONL, elaborabile riga per riga in flusso continuo, è adatto agli insiemi di dati per l'apprendimento automatico e all'acquisizione da parte degli strumenti di raccolta dei registri. Questo strumento fa da tramite fra i due formati.

Una riga di dati, esclusa l'intestazione, corrisponde a una riga di JSONL, cioè a un oggetto JSON. I nomi delle colonne dell'intestazione diventano direttamente le chiavi dell'oggetto.

Sì. Nella conversione da JSONL a CSV si raccolgono tutte le chiavi comparse in tutte le righe e la loro unione forma l'intestazione. I valori delle chiavi assenti in una riga compaiono nel CSV come celle vuote.

Sì. Scegliendo la tabulazione come carattere separatore, lettura e scrittura avvengono direttamente in formato TSV anziché CSV.

No. La conversione avviene interamente nel JavaScript del navigatore e quanto inserite non viene mai trasmesso ad alcun servente.
Tool-kun

A proposito — perché JSON Lines è diventato la lingua franca dell'apprendimento automatico e dei registri

Una delle ragioni principali della diffusione di JSON Lines è la distribuzione degli insiemi di dati per l'apprendimento automatico. I dati per la messa a punto dei grandi modelli linguistici constano spesso di milioni di coppie di ingresso e uscita: raccogliendoli in un unico vettore JSON non se ne potrebbe estrarre nemmeno uno prima di aver letto in memoria e analizzato l'intero file. Con JSONL, invece, ogni riga è un elemento leggibile e scrivibile in modo indipendente, e anche gli insiemi di dati enormi si possono elaborare in flusso continuo.

Anche nel mondo dei registri il formato si adatta bene. Le piattaforme di raccolta come Elasticsearch e Logstash sono progettate per acquisire via via gli eventi che le applicazioni emettono uno alla volta, e un formato in cui ciascuna riga si aggiunge e si analizza da sé si sposa con quel modello assai meglio di un vettore JSON, che costituisce un'unica struttura complessiva.

Il CSV, d'altra parte, resta tuttora molto richiesto per lo scambio di dati aziendali e per le verifiche nel foglio di calcolo. Facendo da ponte diretto fra due formati di natura tanto diversa, questo strumento risolve in un solo passaggio le situazioni in cui occorre passare dall'uno all'altro mondo: immettere in una catena di apprendimento automatico dati ricevuti in CSV, oppure esaminare in Excel registri prodotti in JSONL.