Dati e fogli di calcolo · CSV Pulitore
Valori separati da tabulazioni rispetto a CSV: perché TSV esiste e quando utilizzarlo
· Sfondo
csv tsv formati di dati
Le schede vengono raramente visualizzate all'interno dei dati, ed è esattamente il motivo per cui esiste TSV. Questo post spiega le origini dei file separati da tabulazioni, come eludono i problemi di quotazione di CSV e dove ancora non sono all'altezza.
Testo libero pieno di virgole e virgolette che continua a interrompere le esportazioni di CSV: il caso che ha reso attraenti le schede
Le note di testo libero spesso contengono virgole, quindi l'output delimitato da virgole necessita di virgolette attorno a quelle celle. Una scheda può essere presente meno spesso in quel particolare set di dati, il che può rendere visivamente più silenzioso un file TSV. Non elimina la necessità di un parser o di un accordo sulle tabulazioni e sui ritorni a capo incorporati.
ToolAcre considera la tabulazione come uno dei quattro separatori. La stessa macchina a stati dei campi tra virgolette viene eseguita indipendentemente dal separatore selezionato. Ciò significa che la decisione cambia un carattere strutturale, non il modello di sicurezza per ogni valore scomodo.
Da dove proviene TSV: le origini del carattere di tabulazione della macchina da scrivere e il suo utilizzo iniziale nei dump di database e nei dati scientifici
La cartella di lavoro richiede una cronologia dalle macchine da scrivere ai dump del database, ma tali affermazioni non sono presenti nella configurazione, nell'implementazione o nei test del prodotto. Questo modulo omette quella cronologia e si concentra sul comportamento che i lettori possono riprodurre con il parser fornito.
Una tabulazione nel testo di origine è semplicemente ` ` per la macchina a stati quando selezionata come delimitatore. Al di fuori delle virgolette termina un campo; tra virgolette rimane parte del campo. Questa regola è sufficiente per confrontare i formati senza inventare una storia di origine.
Le origini della macchina da scrivere e la storia iniziale del database sono al di fuori delle prove del deposito
TSV può ridurre le virgolette quando i valori contengono virgole ma non tabulazioni, virgolette o finali di record. Lo schema diceva che la maggior parte dei dialetti TSV non necessita di virgolette; Il serializzatore di ToolAcre è più preciso. Cita qualsiasi campo contenente il delimitatore selezionato, una virgoletta, LF, CR o spazi bianchi circostanti.
Una nota contenente una tabulazione reale deve quindi essere racchiusa tra virgolette nell'output della tabulazione e una virgoletta letterale viene raddoppiata all'interno di quel campo. Il testo libero può contenere anche interruzioni di riga, che rimangono tra virgolette. La scelta di un delimitatore non comune riduce le collisioni in un set di dati; non fa mai sparire le regole di collisione.
ToolAcre applica ancora le virgolette in stile RFC quando i dati delimitati da tabulazioni contengono tabulazioni, virgolette o ritorni a capo
Le schede sono visivamente ambigue perché gli editor possono visualizzarle come spazio a larghezza variabile. La copia tramite software che converte le tabulazioni in spazi può distruggere il separatore lasciando il file leggibile a una persona. Esamina i caratteri invisibili o fai affidamento sull'anteprima del parser prima di dichiarare che il risultato di una colonna non è valido.
ToolAcre riscrive la scheda rilevata in una selezione etichettata e mostra i conteggi delle colonne, rendendo visibile la scelta invisibile. Se il file è effettivamente testo allineato allo spazio anziché TSV, il rilevamento delle tabulazioni non creerà colonne. La selezione manuale non può produrre separatori assenti.
Convenzioni di escape: sequenze di barre rovesciate in alcuni dialetti TSV rispetto alle citazioni in stile RFC in CSV
Alcuni dialetti tabulari utilizzano sequenze di barre rovesciate per le tabulazioni o i ritorni a capo. ToolAcre no. Il suo parser riconosce le virgolette doppie doppie in stile RFC e i campi tra virgolette sotto ogni delimitatore selezionato. Una barra rovesciata è un normale testo di cella e non esegue l'escape del carattere successivo.
Questa mancata corrispondenza può lasciare barre sparse o limiti prematuri durante il caricamento di un'esportazione configurata per un dialetto diverso. Identificare prima le regole di fuga del produttore. La conversione sicura richiede l'analisi del dialetto originale, non la sostituzione di coppie di lettere o barre senza sapere se erano letterali.
I dialetti TSV con barra rovesciata non sono supportati; ToolAcre utilizza virgolette doppie per ogni delimitatore selezionato
Prendi le intestazioni id, nota e due valori: una nota dice `red, small`, mentre un'altra contiene una vera scheda. Nell'output della virgola, la prima nota è tra virgolette e la tabulazione potrebbe rimanere senza virgolette perché non è il delimitatore. Nell'output di tabulazione, la virgola è ordinaria ma il valore di tabulazione è citato.
Analizza ogni output con il delimitatore corrispondente ed entrambe le tabelle recuperano le stesse stringhe. Questo esercizio mostra che nessuno dei due formati evita universalmente una gestione speciale. Il separatore scelto cambia semplicemente quale carattere attiva la virgoletta oltre alle virgolette e alle terminazioni dei record.
Ciò che questo non copre: formati a larghezza fissa e formati tabulari binari
I formati tabulari a larghezza fissa e binari sono esterni al percorso. Non deduce colonne dall'allineamento visivo né decodifica un contenitore colonnare. Gli input devono essere testuali CSV, TSV o testo normale utilizzando virgola, punto e virgola, tabulazione o barra verticale oppure supportati JSON nella direzione inversa.
Inoltre, il percorso non offre caratteri di fuga personalizzati. Se un flusso di lavoro scientifico o di database definisce la propria grammatica TSV, utilizza un parser configurato per quella grammatica prima di portare qui il testo normalizzato. Un'estensione non è una prova sufficiente della compatibilità dialettale.
Scegli il delimitatore per i dati e il consumatore: in che modo la riparazione del delimitatore di ToolAcre CSV Cleaner produce un file delimitato in modo coerente per il sistema che stai alimentando
Scegli un delimitatore in base sia ai dati che al consumatore, quindi dichiaralo esplicitamente. ToolAcre può rilevare tabulazioni e virgole da un campione rettangolare di dieci righe o accettare una sostituzione manuale. Non esamina il contenuto semantico e non decide che le note meritano le tabulazioni.
Dopo l'analisi, risolvi gli avvisi di riga e serializza con lo stesso o un altro separatore supportato. La gestione standard delle virgolette doppie protegge le collisioni. Il risultato è coerente perché il delimitatore è noto, non perché TSV o CSV è intrinsecamente immune alla punteggiatura nei dati.