JSON zu CSV · R
JSON zu CSV in R
In R liest das Paket jsonlite eine JSON-Datei direkt in einen Data Frame ein, write.csv schreibt ihn dann als CSV. jsonlite erkennt Listen von Objekten automatisch als Tabelle, was die Umwandlung in der Datenanalyse besonders bequem macht. Das folgende Beispiel kommt mit zwei Funktionsaufrufen aus.
Ansatz
jsonlite::fromJSON liest direkt in einen Data Frame, write.csv schreibt das Ergebnis.
Code-Beispiel
library(jsonlite)
# flatten loest verschachtelte Objekte in Punkt-Spalten auf
daten <- fromJSON("daten.json", flatten = TRUE)
# write.csv quotet automatisch und schreibt UTF-8
write.csv(
daten,
"daten.csv",
row.names = FALSE,
fileEncoding = "UTF-8"
)
# Fuer deutsches Excel-Format (Semikolon, Komma-Dezimal):
# write.csv2(daten, "daten.csv", row.names = FALSE, fileEncoding = "UTF-8") Hinweise
jsonlite ist hier der entscheidende Helfer, weil fromJSON eine Liste gleichartiger Objekte direkt in einen Data Frame überführt, ohne dass du Spalten manuell sammeln musst. Der Parameter flatten = TRUE löst verschachtelte Objekte in eigene Spalten mit Punkt-Notation auf, etwa adresse.ort, was händische Nacharbeit erspart. write.csv setzt automatisch Anführungszeichen um Textfelder und maskiert innenliegende Anführungszeichen. Wichtig ist row.names = FALSE, sonst schreibt R eine zusätzliche erste Spalte mit Zeilennummern, die fast nie gewünscht ist. Die Funktion write.csv2 ist die europäische Variante: Sie nutzt das Semikolon als Trenner und das Komma als Dezimalzeichen, ideal für deutsches Excel. Bleiben einzelne Felder Listen, etwa bei Arrays unterschiedlicher Länge, musst du sie vorher mit sapply und toString zu Strings zusammenfassen, sonst scheitert write.csv. Die explizite fileEncoding-Angabe sorgt für saubere Umlaute.
FAQ
Häufige Fragen
Was bewirkt flatten = TRUE?
Es löst verschachtelte JSON-Objekte in einzelne Spalten mit Punkt-Notation auf, etwa adresse.ort. Ohne flatten bleiben solche Felder verschachtelte Data Frames, die write.csv nicht direkt schreiben kann.
Wann nutze ich write.csv2 statt write.csv?
write.csv2 erzeugt das europäische Format mit Semikolon als Spaltentrenner und Komma als Dezimalzeichen. Das öffnet sich in deutschem Excel ohne Importassistenten korrekt.
Du willst nicht selbst programmieren? Der JSON-zu-CSV-Converter wandelt deine Daten direkt im Browser um, ohne Upload und ohne Installation.