Tutorial JSONL: Creare, Leggere e Convertire File JSONL

Un tutorial passo-passo che copre tutto ciò che devi sapere sul lavoro con file JSONL (JSON Lines). Include esempi di codice in Python, JavaScript e strumenti CLI.

Ultimo aggiornamento: febbraio 2026

Cos'è JSONL?

JSONL (JSON Lines) è un formato di testo leggero in cui ogni riga è un valore JSON valido separato. A differenza del JSON standard, che racchiude tutti i dati in un singolo array o oggetto, JSONL memorizza un record per riga, separati da caratteri di nuova riga (\n).

Questa struttura riga per riga rende JSONL ideale per lo streaming di grandi dataset, l'aggiunta di record senza riscrivere il file e l'elaborazione dei dati in parallelo. È ampiamente utilizzato da OpenAI per dataset di fine-tuning, da sistemi di logging come lo stack ELK e da strumenti di big data come BigQuery e Apache Spark.

example.jsonl
{"id":1,"name":"Alice","role":"engineer"}
{"id":2,"name":"Bob","role":"designer"}
{"id":3,"name":"Charlie","role":"manager"}

Come Creare File JSONL

Creare un file JSONL è semplice: serializza ogni record come una stringa JSON su una singola riga e scrivilo seguito da una nuova riga. Ecco esempi nei linguaggi più popolari.

Python
import json
records = [
{"id": 1, "name": "Alice", "role": "engineer"},
{"id": 2, "name": "Bob", "role": "designer"},
{"id": 3, "name": "Charlie", "role": "manager"},
]
with open("output.jsonl", "w", encoding="utf-8") as f:
for record in records:
f.write(json.dumps(record, ensure_ascii=False) + "\n")
print("Created output.jsonl with", len(records), "records")
JavaScript / Node.js
import { writeFileSync } from 'fs';
const records = [
{ id: 1, name: 'Alice', role: 'engineer' },
{ id: 2, name: 'Bob', role: 'designer' },
{ id: 3, name: 'Charlie', role: 'manager' },
];
const jsonl = records
.map(record => JSON.stringify(record))
.join('\n');
writeFileSync('output.jsonl', jsonl + '\n', 'utf-8');
console.log(`Created output.jsonl with ${records.length} records`);

Manuale / Editor di Testo

Puoi anche creare file JSONL in qualsiasi editor di testo. Digita semplicemente un oggetto JSON valido per riga senza virgole tra le righe e salva il file con estensione .jsonl. Assicurati che ogni riga sia completa e JSON valido.

Come Leggere File JSONL

Poiché ogni riga è un valore JSON indipendente, leggere file JSONL è semplice come iterare sulle righe. Ecco gli approcci più comuni.

Python
import json
with open("data.jsonl", "r", encoding="utf-8") as f:
for line_number, line in enumerate(f, 1):
line = line.strip()
if not line:
continue # skip empty lines
record = json.loads(line)
print(f"Line {line_number}: {record['name']} - {record['role']}")
JavaScript / Node.js
import { createReadStream } from 'fs';
import { createInterface } from 'readline';
const rl = createInterface({
input: createReadStream('data.jsonl', 'utf-8'),
});
let lineNumber = 0;
for await (const line of rl) {
if (!line.trim()) continue; // skip empty lines
lineNumber++;
const record = JSON.parse(line);
console.log(`Line ${lineNumber}: ${record.name} - ${record.role}`);
}
Riga di Comando (grep / jq)
# View first 10 lines
head -n 10 data.jsonl
# Count total records
wc -l data.jsonl
# Pretty-print each line with jq
cat data.jsonl | jq .
# Filter records where role is "engineer"
cat data.jsonl | jq 'select(.role == "engineer")'
# Extract only the name field
cat data.jsonl | jq -r '.name'
# Search for lines containing a keyword
grep '"Alice"' data.jsonl

Come Convertire JSON in JSONL

Se hai un array JSON standard, convertire in JSONL significa scrivere ogni elemento come una riga separata. Questa è una delle operazioni JSONL più comuni.

Python
import json
# Read JSON array
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f) # expects a JSON array
# Write as JSONL
with open("data.jsonl", "w", encoding="utf-8") as f:
for record in data:
f.write(json.dumps(record, ensure_ascii=False) + "\n")
print(f"Converted {len(data)} records from JSON to JSONL")
JavaScript / Node.js
import { readFileSync, writeFileSync } from 'fs';
// Read JSON array
const data = JSON.parse(readFileSync('data.json', 'utf-8'));
// Write as JSONL
const jsonl = data
.map(record => JSON.stringify(record))
.join('\n');
writeFileSync('data.jsonl', jsonl + '\n', 'utf-8');
console.log(`Converted ${data.length} records from JSON to JSONL`);

Converti online

Non vuoi scrivere codice? Usa il nostro convertitore JSON to JSONL online gratuito — incolla o carica il tuo file e converti istantaneamente.

Come Convertire CSV in JSONL

Convertire CSV in JSONL mappa ogni riga a un oggetto JSON, usando l'intestazione CSV come nomi di campo. Questo è utile quando si migrano dati tabulari in un formato adatto per streaming o machine learning.

Python
import csv
import json
with open("data.csv", "r", encoding="utf-8") as csv_file:
reader = csv.DictReader(csv_file)
with open("data.jsonl", "w", encoding="utf-8") as jsonl_file:
for row in reader:
jsonl_file.write(json.dumps(row, ensure_ascii=False) + "\n")
print("Converted CSV to JSONL successfully")
JavaScript / Node.js
import { readFileSync, writeFileSync } from 'fs';
const csv = readFileSync('data.csv', 'utf-8');
const lines = csv.trim().split('\n');
const headers = lines[0].split(',');
const jsonl = lines.slice(1).map(line => {
const values = line.split(',');
const obj = {'};
headers.forEach((h, i) => obj[h.trim()] = values[i]?.trim());
return JSON.stringify(obj);
}).join('\n');
writeFileSync('data.jsonl', jsonl + '\n', 'utf-8');
console.log('Converted CSV to JSONL successfully');

Converti CSV online

Converti file CSV in formato JSONL istantaneamente con il nostro strumento online gratuito — nessun codice necessario.

Migliori Pratiche JSONL

1

Usa la codifica UTF-8 per tutti i file JSONL. Questo garantisce la compatibilità tra piattaforme e supporta i caratteri internazionali.

2

Scrivi esattamente un oggetto JSON per riga. Non dividere mai un oggetto JSON su più righe o metti più oggetti sulla stessa riga.

3

Non aggiungere virgole tra le righe. A differenza degli array JSON, JSONL usa i caratteri di nuova riga come unico delimitatore.

4

Valida ogni riga indipendentemente. Ogni riga deve essere un valore JSON completo e valido. Usa un validatore JSONL per catturare errori di sintassi in anticipo.

5

Usa letture in streaming per file di grandi dimensioni. Invece di caricare l'intero file in memoria, elaboralo riga per riga usando readline (Node.js) o l'iterazione dei file (Python).

6

Mantieni i record coerenti nella struttura. Anche se JSONL consente schemi diversi per riga, mantenere una struttura uniforme rende l'elaborazione dei dati molto più facile.

7

Evita spazi bianchi finali. Assicurati che le righe non abbiano spazi o tabulazioni extra che potrebbero causare problemi di analisi.

8

Termina il file con una nuova riga. Una nuova riga finale dopo l'ultimo record aiuta strumenti come wc e cat a gestire il file correttamente.

Errori JSONL Comuni

Racchiudere in un Array
Wrong
[
  {"name":"Alice"},
  {"name":"Bob"}
]
Correct
{"name":"Alice"}
{"name":"Bob"}

JSONL non è un array JSON. Non racchiudere le righe tra parentesi quadre o aggiungere virgole tra di esse. Ogni riga sta da sola.

Virgole tra le Righe
Wrong
{"name":"Alice"},
{"name":"Bob"},
Correct
{"name":"Alice"}
{"name":"Bob"}

Le virgole finali dopo ogni riga o le virgole tra le righe non sono valide in JSONL. Il carattere di nuova riga è l'unico separatore.

Oggetti JSON Multi-riga
Wrong
{
  "name": "Alice",
  "age": 30
}
Correct
{"name":"Alice","age":30}

Ogni oggetto JSON deve stare su una singola riga. JSON formattato con indentazione e interruzioni di riga non è JSONL valido.

Caratteri Speciali Non Escapati
Wrong
{"text":"She said "hello""}
Correct
{"text":"She said \"hello\""}

Le virgolette e i caratteri speciali all'interno delle stringhe JSON devono essere correttamente escapati con barre rovesciate. Le virgolette non escapate romperanno il parser JSON.

Valida il tuo JSONL

Dopo aver creato il tuo file JSONL, validalo per individuare errori di sintassi in anticipo. Il nostro validatore gratuito controlla ogni riga istantaneamente.

Prova i Nostri Strumenti JSONL Gratuiti

Visualizza, valida e converti file JSONL fino a 1GB direttamente nel tuo browser. Nessun upload richiesto, 100% privato.

Domande Frequenti

Tutorial JSONL — Creare, Leggere, Validare e Convertire F...