Das CSV-Format (comma separated values) ist neben Excel das wohl am häufigsten verwendete Format wenn es um den Austausch tabellarischer Daten geht, auf unserer Plattform stellt es mit fast 80% den größten Anteil an Downloads dar. Im Folgenden wollen wir daher kurz erklären, wie dieses Format funktioniert und wie sie es am einfachsten Nutzen können.

Eigenschaften des CSV-Formats

textbasiert

CSV-Dateien enthalten reinen Text, sie können also mit jedem Texteditor geöffnet und bearbeitet werden. Im Gegensatz zum Beispiel zu Excel ist also keine kostenpflichtige Software nötig. Auch Das benutzte Betriebssystem spielt keine Rolle

flach

CSV-Dateien können tabellarische Daten darstellen, ähnlich einem Tabellenblatt in Excel. Hierarchien oder mehrere Tabellen in einer Datei sind dagegen nicht möglich.

universell einsetzbar

Auch wenn „echte“ Datenbanksysteme immer weiter verbreitet sind: Noch heute werden für viele Anwendungen CSV-Dateien verwendet. Solange die Datenmengen überschaubar sind (bis zu 1 GB) lassen sich in Daten im CSV-Format leicht verarbeiten, v.a. da praktische jeder Entwicklungsumgebung leistungsfähige Hilfsmittel dafür zur Verfügung stellt. Da dass Format sehr kompakt ist, lässt es sich mit Hilfe von Kompressionsmechanismen wie Zip stark verkleinern und so transportieren

 

Aufbau des CSV-Formats

Grundsätzlich bestehen CSV-Dateien aus folgenden Teilen

Daten

Wie in jedem Datenformat sind die Daten die eigentliche Nutzlast. Bei CSV liegen sie in Form von Texten vor. Datentypen werden nicht unterstützt, auch Leerwerte sind nicht extra definiert. Da alle Daten Texte sind, muss der gesamte Datensatz ein einheitliches Text-Encoding verwenden. Wiwald unterstützt hier ausschließlich utf8, alle anderen Encodings sollten soweit wie möglich vermieden werden.

Zeilen

Jede Zeile einer CSV-Datei repräsentiert i.A. genau einen zusammengehörigen Datensatz, wie bei einer Zeile in Excel oder einer SQL-Datenbank. Interpreter unterstützten darüberhinaus auf mehrzeilige Datensätze, wenn in einem der Datenfelder Umbrüche enthalten sind.

Die erste Zeile einer CSV-Datei enthält häufig IDs oder Titel, mit denen die Spalten der repräsaentierten Tabelle definiert werden. Ist diese Zeile vorhanden muss bei der Nutzung der Datei darauf geachtet werden, dass sie nicht wie die Datenzeilen eingelesen wird. Die meisten CSV-Bibliotheken bringen entsprechende Parameter mit.

Trennzeichen (Delimiter)

Jede CSV-Datei definiert ein Zeichen als Trennzeichen (selten aber möglich kann auch ein ganzes Trennwort verwendet werden). Am weitesten verbreitet ist hier das Komma, woher auch der Name CSV kommt. Ebenfalls häufig verwendet werden Strichpunkte oder Tabulatoren (gelegentlich als tsv-Dateien bezeichnet).

Anführungs-Zeichen (Quotes) und Escape-Zeichen

Die Verwendung eines Trennzeichens führt dann zu einem Problem, wenn das Trennzeichen selbst in einem Datenwert enthalten ist. Um dies zu beheben werden solche (oder alle) Felder von einem definierten Anführungszeichen umschlossen. Das kann jedes beliebige Zeichen sein, im Allgemeinen werden allerdings einfach oder doppelte Anführungszeichen verwendet.

Anführungszeichen erzeugen dann wiederum ein Problem wenn sie in einem Datumsfeld enthalten sind, weil CSV-Interpreter nicht unterscheiden können, ob nun das Ende des Wertes erreicht ist oder nicht. Zur Lösung werden Escape-Zeichen eingeführt, die dem Anführungszeichen vorangestellt werden. Häufig wird dazu ebenfalls das Anführungszeichen verwendet, gelegentlich auch ein backslash.

CSV-Beispiele

Einfaches Beispiel mit Kommas

id,Zahlenwert,Textwert
1,22,Lorem
2,120,ipsum

Beispiel mit einem leeren Wert

id,Zahlenwert,Textwert
1,22,Lorem
2,,ipsum

Beispiel mit einfachen Anführungszeichen und Escapezeichen

id;Zahlenwert;Textwert;Noch_Ein_Textwert
1;22;Lorem;Ipsum
2;120;'Lorem; ''Ipsum''';dolor

Der Wert für die Spalte Textwert in Zeile 2 entspricht: Lorem; ‚Ipsum‘. Das ist das Standardformat wenn man CSV-Dateien aus Excel exportiert.

Auszug aus unserem kostenlosen Datensatz aller deutschen Postleitzahlen

primary_key;zipcode;city;state;community;latitude;longitude
1;01945;Grünewald;Brandenburg;Landkreis Oberspreewald-Lausitz;51.4;14.0
2;01945;Lindenau;Brandenburg;Landkreis Oberspreewald-Lausitz;51.4;13.7333
3;01945;Hohenbocka;Brandenburg;Landkreis Oberspreewald-Lausitz;51.431;14.0098
4;01945;Schwarzbach;Brandenburg;Landkreis Oberspreewald-Lausitz;51.45;13.9333
5;01945;Guteborn;Brandenburg;Landkreis Oberspreewald-Lausitz;51.4167;13.9333
6;01945;Hermsdorf;Brandenburg;Landkreis Oberspreewald-Lausitz;51.4055;13.8937
7;01945;Ruhland;Brandenburg;Landkreis Oberspreewald-Lausitz;51.4576;13.8664
8;01945;Tettau;Brandenburg;Landkreis Oberspreewald-Lausitz;51.4333;13.7333
9;01945;Kroppen;Brandenburg;Landkreis Oberspreewald-Lausitz;51.3833;13.8
10;01968;Schipkau Hörlitz;Brandenburg;Landkreis Oberspreewald-Lausitz;51.5299;13.9508
11;01968;Senftenberg;Brandenburg;Landkreis Oberspreewald-Lausitz;51.5252;14.0016
12;01968;Schipkau;Brandenburg;Landkreis Oberspreewald-Lausitz;51.5456;13.9121

Was man bei CSV-Dateien beachten sollte

Bei der Arbeit mit CSV-Dateien muss man sich auch einiger Dinge bewusst sein, um möglichst effizient mit ihnen arbeiten zu können.

  • Achten Sie darauf, Daten wirklich in einem einheitlichen Encoding einzufügen und zu bearbeiten. Nutzen Sie soweit möglich UTF8. Denken Sie daran, das ein wechsel zwischen Encodings nicht immer verlustfrei möglich ist
  • Nutzen Sie einheitliche Leerwerte. Viele aus dem Internet heruntergeladene CSVs enthalten verschiedene Leerwerte wie null, n/a, – usw. Das erschwert die maschinelle Verarbeitung und die Lesbarkeit der Datei für Menschen.
  • Ein Datentyp pro Spalte. Verhindern Sie, das eine Spalte zwischen Datentypen wechselt (Ausnahme: Leerwerte). Den Nutzern des Datensatzes bleibt sonst nur übrig, alles als Text anzusehen und Ausnahmebehandlungen einzubauen
  • Vorsicht mit Excel. Die CSV-Unterstützung in Excel ist ein wirklich trauriges Kapitel. Umso schlimmer, dass Dateien mit CSV-Endung unter Windows standardmäßig von Excel geöffnet werden, wenn es installiert ist. Sind diese allerdings nicht in genau dem Format, das Excel als Standard annimmt, bekommt man jede Zeile als Gesamteintrag in einem Feld. Will man CSV vernünftig in Excel nutzen, muss man zunächst eine leere Datei erstellen und dann über „Daten->aus text/csv“ die CSV-Datei importieren. Aber Achtung: Excel verbindet sich dabei direkt mit der Quelldatei und speichert Änderungen dort ab was nicht immer gewünscht ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.