Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
Qui converti NDJSON in CSV gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
NDJSON in CSV
L’aritmetica qui è più semplice che per qualunque altra sorgente su questo sito. NDJSON garantisce un record completo per riga, quindi il numero di righe che otterrete è il numero di righe nel file. Nulla nei dati può produrre un ritorno a capo, perché un a capo dentro un valore stringa è codificato dentro il JSON.
Questo rende la conversione prevedibile in un modo che un array JSON non è. Se il file ha 412.000 righe ottenete 412.000 righe più un’intestazione, e se l’output ne ha meno, qualcosa era sbagliato nell’input. Le righe vuote vengono saltate, incluso l’a capo finale che quasi ogni scrittore lascia.
Ogni riga in un file NDJSON è indipendente, e nulla obbliga la seconda a portare le chiavi della prima. Un flusso di log che emette diversi tipi di evento — una richiesta, un errore, un completamento di lavoro — li mette tutti in un file con campi diversi ciascuno.
La conversione raccoglie ogni chiave vista ovunque nel file e le dà una colonna, lasciando celle vuote dove una riga non aveva nulla. Nulla si perde, e il risultato può essere molto sparso: quaranta colonne di cui ogni riga ne usa otto. Se descrive il vostro output, la mossa utile è filtrare il file a un tipo di evento prima di convertire.
Se una riga non è JSON valido, la conversione non continua oltre. Il messaggio dice quale riga. È deliberato piuttosto che fragile, ed è il comportamento che vale la pena volere.
Una riga rotta in un log quasi mai significa un carattere estraneo. Significa una scrittura troncata — un processo terminato a metà flush, un file ruotato tagliato a un confine — e tutto dopo quel punto è sospetto. Con il numero di riga in mano, cancellare o riparare la coda richiede un comando, e sapete esattamente cosa avete perso.
Il logging strutturato di solito annida: un oggetto request con un metodo e un percorso, un oggetto user con un id, un blocco context con un identificatore di traccia. Questi si appiattiscono in colonne nominate per il percorso, con una colonna per ogni valore foglia.
Uno o due livelli producono una tabella con cui chiunque può lavorare, e copre i predefiniti della maggior parte delle librerie di logging. Strutture più profonde si allargano rapidamente, e una riga di log che porta un intero payload serializzato produrrà una colonna per ogni campo al suo interno.
Un record che porta una lista — tag, frame di errore, un insieme di regole applicate — viene appiattito in colonne numerate: tags.0, tags.1, tags.2. Ogni valore sopravvive e la tabella riceve una colonna per la lista più lunga del file, per lo più vuote.
Per l’analisi raramente è ciò che volete. Se l’array è incidentale, unirlo in una singola stringa prima di convertire produce una colonna leggibile. Se l’array è ciò che state analizzando, la forma che volete è una riga per elemento, il che significa espandere il file prima.
I tipi sono la vittima principale, e vale la pena essere chiari che si perdono alla destinazione piuttosto che in transito. I valori sono scritti fedelmente — un numero come cifre, un booleano come true o false, un null come cella vuota — ma il CSV non ha un sistema di tipi.
Excel decide male e in modo prevedibile: gli zeri iniziali svaniscono dagli identificatori, qualunque cosa abbia forma di data diventa una data, e gli id numerici lunghi perdono le ultime cifre. Il rimedio è importare piuttosto che aprire — Dati, poi Da Testo/CSV, con le colonne identificatore impostate su Testo.
I valori contenenti una virgola, una virgoletta o un a capo vengono avvolti in virgolette doppie con le virgolette interne raddoppiate, la convenzione RFC 4180 letta correttamente da ogni importatore serio. Tutto il resto viene scritto nudo.
I dati di log si appoggiano a questo meccanismo più della media. User agent, percorsi di richiesta con stringhe di query, messaggi di errore e stack trace sono pieni di virgole e virgolette. Se la destinazione è una pipeline di shell piuttosto che un foglio di calcolo, convertire in valori separati da tab evita del tutto la questione.
L’analisi è veloce e il tetto è la memoria, perché l’intero file viene letto in record e l’insieme completo delle colonne calcolato prima che la prima riga possa essere scritta. Il livello gratuito accetta fino a 100 MB; decine di megabyte convertono senza drammi.
Oltre, il formato sorgente è dalla vostra parte. NDJSON si divide in sicurezza a qualunque confine di riga, quindi convertire un log molto grande a pezzi è legittimo piuttosto che un espediente, e i pezzi hanno intestazioni identiche se le forme degli eventi sono le stesse.
La conversione è JavaScript ordinario in esecuzione in questa scheda del browser. Nessuna richiesta porta il file da nessuna parte, non c’è account né limite giornaliero, e potete confermarlo aprendo il pannello di rete.
Non è una gentilezza per questa coppia. Un log di produzione contiene indirizzi IP, identificatori di sessione, percorsi di richiesta e spesso una stringa di query con un token dentro — esattamente il contenuto che rende il caricamento su un servizio web un evento da segnalare nella maggior parte delle organizzazioni.
| NDJSON | CSV | |
|---|---|---|
| Nome completo | Newline-Delimited JSON | Comma-Separated Values |
| Estensione del file | .ndjson, .jsonl | .csv |
| Tipo di media | application/x-ndjson | text/csv |
| Prima pubblicazione | 2013 | 1972 |
| Specifica | — | RFC 4180 |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | JSON | XLSX, JSON, Parquet |
pandas legge sia NDJSON sia CSV, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
CSV risale al 1972, descritto in RFC 4180. Microsoft Excel, LibreOffice Calc e pandas lo leggono.
CSV è stato pubblicato nel 1972 e NDJSON nel 2013. Il più vecchio è in genere il file più sicuro da consegnare; il più recente fa lo stesso lavoro con meno byte.
No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file.
Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta.
NDJSON e CSV descrivono il contenuto in modi radicalmente diversi. La conversione è quindi una ricostruzione e non una copia: fedele, ma non identica byte per byte. Gli oggetti annidati vengono appiattiti in colonne. I dati molto annidati perdono la loro forma.
Per la conversione no: avviene nel browser che hai già aperto. Per aprire il risultato ti serve poi il programma con cui il tuo dispositivo mostra di solito Comma-Separated Values.