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 löst verschachtelte Objekte in Punkt-Spalten auf
daten <- fromJSON("daten.json", flatten = TRUE)
# write.csv setzt Anführungszeichen automatisch und schreibt UTF-8
write.csv(
daten,
"daten.csv",
row.names = FALSE,
fileEncoding = "UTF-8"
)
# Für das deutsche Excel-Format (Semikolon, Komma als Dezimalzeichen):
# 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 Sie Spalten manuell sammeln müssen. Der Parameter flatten = TRUE löst verschachtelte Objekte in eigene Spalten mit Punkt-Notation auf, etwa adresse.ort. 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 Funktion write.csv2 ist die europäische Variante: Sie nutzt das Semikolon als Trenner und das Komma als Dezimalzeichen, passend für deutsches Excel. Bleiben einzelne Spalten Listen, etwa bei Arrays, scheitert write.csv mit einer Fehlermeldung. Fassen Sie solche Spalten vorher mit sapply(daten$tags, paste, collapse = ", ") zu Text zusammen. Die Angabe fileEncoding = "UTF-8" schreibt UTF-8 ohne BOM. Wenn Excel die Umlaute beim Doppelklick falsch zeigt, importieren Sie die Datei über Daten, Aus Text/CSV.
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 passt zu den Erwartungen von deutschem Excel.
Sie wollen nicht selbst programmieren? Der JSON-CSV-Konverter wandelt Ihre Daten direkt im Browser um, ohne Upload und ohne Installation.