Json To Csv LogoJson To Csv

Welche Möglichkeiten gibt es, JSON lokal in CSV umzuwandeln? 6 Methoden im Vergleich (Anleitung 2026)

Es gibt sechs ehrliche Wege, JSON lokal in CSV umzuwandeln: eine clientseitige Konverter-Seite, Python ohne zusätzliche Pakete, Python mit pandas, ein jq-Einzeiler, ein Node-Skript und die Werkzeuge, die in VS Code und Excel schon installiert sind. Sie unterscheiden sich darin, was Sie installieren müssen, ob verschachtelte Daten erhalten bleiben und ob sich der Auftrag sauber wiederholen lässt. Diese Anleitung testet alle sechs an denselben Dateien und vergleicht sie Seite an Seite.

Aktualisiert: 2026-10-2711 Min. Lesezeit

Die sechs Wege auf einen Blick

Bevor es ins Detail geht, hier das ganze Feld in einem Durchgang, denn der schnellste Weg zur Wahl ist, fünf Optionen auszuschließen. Weg 1, die clientseitige Konverter-Seite, braucht nichts Installiertes und lässt die Datei auf Ihrem Rechner, verlangt aber für jede Datei erneut Klicks. Weg 2, Python nur mit der Standardbibliothek, braucht Python 3 und sonst nichts, verarbeitet flache Daten perfekt und lässt verschachtelte Werte als Python-Repr-Text stehen. Weg 3, Python mit pandas, wandelt verschachtelte Objekte automatisch in Spalten mit Punktnotation um, braucht aber installiertes pandas und weiterhin eine einzeilige Korrektur für Listen. Weg 4, jq, ist eine einzige Terminalzeile für flache Daten und scheitert laut statt falsch an verschachtelten Daten. Weg 5, ein Node-Skript, wandelt verschachtelte Objekte um und verbindet Listen mit einer Hilfsfunktion, die Sie vollständig lesen können, und passt natürlich in ein Projekt. Weg 6, VS Code oder Excel, braucht keine neue Installation, wenn Sie das Werkzeug schon nutzen, und tauscht Kontrolle gegen Bequemlichkeit.

Zwei Fragen schränken die Liste ein, bevor Sie weiterlesen. Erstens: Sind Ihre Daten flach oder verschachtelt? Flache Daten, also eine Ebene von Schlüsseln pro Objekt, funktionieren mit allen sechs Wegen. Verschachtelte Daten, also Objekte in Objekten oder Listen in Objekten, schließen den einfachen jq-Einzeiler und das einfache Python-Skript mit Standardbibliothek aus, solange Sie keine Umwandlung in flache Form hinzufügen. Zweitens: Werden Sie das wieder tun? Eine einmalige Umwandlung spricht für die Seite oder das Werkzeug, das Sie schon haben. Ein wöchentlicher Export spricht für ein Skript, denn derselbe Befehl liefert jedes Mal dieselben Spalten in derselben Reihenfolge. Behalten Sie diese beiden Fragen im Kopf, dann wird der Rest dieser Anleitung zu einer Nachschlagetabelle.

Jede Aussage in dieser Anleitung wurde vor der Veröffentlichung an denselben Beispieldaten geprüft: drei Bestellungen, jede mit einer Kennung, einem verschachtelten Kundenobjekt mit Name und Stadt, einer Liste mit Schlagwörtern und einem Gesamtbetrag. Flache Varianten derselben Datei wurden dort verwendet, wo eine Methode nur flache Daten verarbeitet. Wenn eine Methode an verschachtelten Daten scheitert, sagt diese Anleitung das und zeigt das genaue Scheitern, statt es zu glätten, denn ein Scheitern, das Sie sehen, ist sicherer als eine falsche Tabelle, die Sie nicht sehen.

Weg 1: die clientseitige Konverter-Seite

Der einfachste lokale Weg ist der Konverter auf dieser Seite, und er zählt als lokal, obwohl er auf einer Webseite lebt. Wenn Sie JSON einfügen oder eine Datei hochladen, zerlegt die Seite die Daten, wandelt sie in flache Form um und baut den CSV-Text in Ihrem Browser-Tab, um ihn Ihnen dann als heruntergeladene Datei zu übergeben. Es gibt keinen Schritt zum Hochladen und keinen Server, der auf Ihre Daten wartet, denn der Umwandlungscode wird mit der Seite geliefert und läuft auf Ihrem Rechner. Der einzige Knopf auf der Seite, der das Netz berührt, ist der optionale Knopf zum Laden von einer Webadresse, der JSON von einer Adresse lädt, die Sie eintippen. Fügen Sie stattdessen ein oder laden Sie hoch, dann wird das Netz nie benutzt.

Sie können diese Aussage selbst in etwa dreißig Sekunden prüfen. Öffnen Sie den Konverter, trennen Sie die Netzverbindung oder schalten Sie den Flugmodus ein, fügen Sie dann JSON ein und wandeln Sie es um. Es funktioniert weiterhin, denn nichts an der Umwandlung braucht das Netz. Dieser Test lohnt sich einmal, denn eine Aussage über Privatsphäre ist es wert, geprüft statt geglaubt zu werden, und diese hier besteht die Prüfung.

Die Seite ist der richtige Weg für eine einmalige Datei, für einen Rechner, auf dem Sie nichts installieren können, und für eine Datei, die Sie umwandeln wollen, bevor Sie sich auf ein Skript festlegen. Ihre Grenzen sind dieselben wie bei jeder Seite: Sie wiederholen die Klicks für jede Datei, und eine sehr große Datei wird den Tab verlangsamen. Sie entscheidet außerdem einiges für Sie, etwa Spaltenreihenfolge und Verhalten bei der Umwandlung in flache Form, über ihre Optionen statt über Code, den Sie selbst steuern. Für eine einzelne Datei spielen diese Grenzen keine Rolle. Für einen wöchentlichen Export wählen Sie unten ein Skript und behalten die Seite als schnelle Prüfung.

Weg 2: Python nur mit der Standardbibliothek

Python ist der nützlichste lokale Weg für die meisten Menschen, denn es ist auf den meisten Rechnern von Entwicklern schon installiert, und die Standardbibliothek allein reicht aus. Kein pandas, keine Pakete, nichts zum Herunterladen. Das Skript unten liest eine JSON-Datei mit Objekten, nimmt die Spaltennamen aus dem ersten Objekt und schreibt eine CSV mit dem Standardmodul csv, das die Anführungszeichen selbst korrekt setzt. Speichern Sie es als json2csv.py und führen Sie es aus mit python3 json2csv.py orders.json orders.csv.

Python, standard library only
import json, csv, sys

with open(sys.argv[1]) as f:
    rows = json.load(f)

with open(sys.argv[2], 'w', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=rows[0].keys())
    writer.writeheader()
    writer.writerows(rows)

An den drei Beispielbestellungen geprüft, erzeugte dieses Skript eine Kopfzeile plus drei Datenzeilen, und das Ergebnis zeigt seine eine ehrliche Grenze offen. Das verschachtelte Kundenobjekt kam als Python-Repr-Zeichenkette heraus, also als lesbare, aber nicht tabellarische Darstellung mit Name und Stadt, und die Liste mit Schlagwörtern kam ebenfalls als Repr-Liste heraus. Ein einfacher DictWriter wandelt verschachtelte Werte nicht in flache Form um, also werden flache Daten perfekt umgewandelt und verschachtelte Daten sichtbar falsch, was zumindest leicht zu erkennen ist. Die Korrektur ist eine kurze rekursive Funktion, die verschachtelte Objekte vor dem Schreiben in Schlüssel mit Punktnotation verwandelt, also customer.name und customer.city, und genau das tut das Node-Skript in Weg 5.

Das Modul csv leistet hier echte Arbeit für Sie. Es setzt Zellen, die das Trennzeichen enthalten, in Anführungszeichen, verdoppelt innere Anführungszeichen und schreibt Zeilenenden, die Ihre Tabellenkalkulation erwartet. Bauen Sie CSV nicht selbst, indem Sie Werte mit Kommas verbinden. Von Hand verbundene Werte brechen beim ersten Komma innerhalb eines Wertes, und dieser Bruch ist lautlos: Die Datei sieht gut aus, bis sich eine Spalte verschiebt. Die Version mit Standardbibliothek läuft außerdem auf jedem Rechner mit Python 3 gleich, und genau darum ist sie die Methode, zu der Sie greifen, wenn auch ein Kollege oder eine Kollegin Ihre Umwandlung ausführen muss.

Weg 3: Python mit pandas json_normalize

Wenn Weg 2 das ehrliche Minimum ist, dann ist Weg 3 die Verbesserung, die sich die meisten Menschen tatsächlich wünschen. Die pandas-Funktion json_normalize nimmt verschachtelte Objekte und verwandelt sie automatisch in Spalten mit Punktnotation, sodass aus customer ohne eine Hilfsfunktion, die Sie selbst schreiben, customer.name und customer.city werden. Das Skript unten liest dieselbe Bestelldatei, normalisiert sie und schreibt eine CSV. Es braucht installiertes pandas, also eine einzige Installation, und danach ist der ganze Auftrag drei Zeilen lang.

Python with pandas json_normalize
import json, pandas as pd

with open('orders.json') as f:
    rows = json.load(f)

df = pd.json_normalize(rows)
df.to_csv('orders.csv', index=False)

An denselben drei Beispielbestellungen geprüft, erzeugte json_normalize die Spalten id, tags, total, customer.name und customer.city mit drei Zeilen. Das ist das Verhalten, das Sie erwarten dürfen: Verschachtelte Objekte werden flach, flache Felder gehen durch, und die flach gemachten verschachtelten Spalten kommen nach den flachen Spalten. Listen bleiben der Haken. Die Liste mit Schlagwörtern kam als Python-Repr-Text heraus, genau wie in Weg 2, denn json_normalize rät nicht, was eine Liste bedeutet. Die einzeilige Korrektur ist, kurze Listen vor dem Schreiben zu verbinden, zum Beispiel mit df['tags'] = df['tags'].apply(lambda v: '; '.join(v) if isinstance(v, list) else v), was die Liste in eine lesbare Zelle verwandelt. Für eine Liste, bei der jeder Eintrag eine eigene Zeile werden soll, ist das ein anderer Vorgang, das Aufspalten, und pandas hat dafür einen eigenen Schritt. Die Regel ist einfach: Die Umwandlung in flache Form erledigt Objekte, das Verbinden erledigt kurze Listen, das Aufspalten erledigt Listen, die Zeilen bedeuten.

Pandas ist der richtige Weg, wenn Ihre Daten verschachtelt sind, wenn Sie sie vor dem Schreiben bereinigen oder filtern werden und wenn Sie ohnehin in Python arbeiten. Es ist der falsche Weg, wenn die Installation eines Pakets nicht möglich ist oder wenn der Auftrag eine einzelne flache Datei ist, die jq oder die Seite schneller erledigen würden. Die Installation ist der einzige echte Preis, und sie zahlt sich beim zweiten Umwandeln aus.

Weg 4: jq, der Einzeiler für flache Daten

Wenn Sie ohnehin im Terminal arbeiten, verwandelt jq den ganzen Auftrag in eine Zeile, jedenfalls für flache Daten. Es liest JSON, nimmt die Schlüssel aus dem ersten Objekt als Kopfzeile und gibt dann jede Zeile als CSV-Zeile aus, wobei die Anführungszeichen vom Formatierer @csv gesetzt werden. Keine Skriptdatei, keine Schleife, keine Anführungszeichen von Hand. Der Befehl unten liest eine flache Bestelldatei, mit Kennung, Stadt und Gesamtbetrag pro Bestellung, und schreibt orders.csv. Beachten Sie die Grenze, offen ausgesprochen: Der Formatierer @csv weist verschachtelte Objekte und Listen zurück, also ist dieser Einzeiler nur für flache Exporte gedacht, und die verschachtelte Beispieldatei aus den früheren Abschnitten scheitert daran mit einem Fehler statt mit einer falschen Tabelle, was die sichere Art des Scheiterns ist.

jq one-liner, flat objects
jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ]])[] | @csv' orders-flat.json > orders.csv

An einer flachen Datei mit drei Bestellungen geprüft, war die Ausgabe eine Kopfzeile in Anführungszeichen, "id","city","total", gefolgt von drei Datenzeilen, bei denen Textzellen in Anführungszeichen standen und Zahlen ohne, genau die Form, die @csv erzeugt. Das Detail keys_unsorted zählt: Einfache keys würden die Spalten alphabetisch sortieren, was die Spaltenreihenfolge gegenüber Ihrer Datei verändert. Wenn Ihre Daten verschachtelte Objekte enthalten, braucht jq zuerst einen Filter zur Umwandlung in flache Form, und der Einzeiler wächst zu einem kleinen Skript. Für flache Exporte, was die meisten API-Listenantworten nach dem Auspacken schon sind, ist der Einzeiler der ganze Auftrag, und er läuft offline auf jedem Rechner mit installiertem jq.

Ein Hinweis: jq liest die ganze Datei in den Speicher, also wird ein Export von mehreren Gigabyte es belasten, genau wie einen Browser-Tab. Für gewöhnliche Exporte bis zu einigen Dutzend Megabyte ist es sofort fertig. Für sehr große Dateien teilen Sie die Datei zuerst oder nutzen ein Werkzeug mit Datenstrom, und behandeln Sie das als eigenes Problem, getrennt von der Umwandlung.

Weg 5: Node, wenn die Umwandlung in einem Projekt lebt

Node ist der richtige lokale Weg, wenn die Umwandlung Teil eines Projekts ist statt einer einmaligen Aufgabe: ein Schritt beim Erstellen, eine Datenpipeline, ein Skript, das das Team ohnehin ausführt. Node bringt das Einlesen von JSON schon mit, also ist die einzige Arbeit, Zeilen in CSV-Text zu verwandeln, und das kleine Skript unten tut das mit einer Hilfsfunktion zur Umwandlung in flache Form, sodass verschachtelte Objekte zu Spalten mit Punktnotation werden, passend zum Verhalten der Konverter-Seite. Speichern Sie es als json2csv.mjs und führen Sie es aus mit node json2csv.mjs orders.json orders.csv.

Node script with dot-flattening
import { readFileSync, writeFileSync } from 'node:fs';

const flatten = (obj, prefix = '', out = {}) => {
  for (const [k, v] of Object.entries(obj)) {
    const key = prefix ? prefix + '.' + k : k;
    if (v && typeof v === 'object' && !Array.isArray(v)) flatten(v, key, out);
    else out[key] = Array.isArray(v) ? v.join('; ') : v;
  }
  return out;
};

const rows = JSON.parse(readFileSync(process.argv[2], 'utf8')).map(r => flatten(r));
const cols = [...new Set(rows.flatMap(r => Object.keys(r)))];
const esc = v => v == null ? '' : /[",\n]/.test(String(v)) ? '"' + String(v).replaceAll('"', '""') + '"' : String(v);
const lines = [cols.join(','), ...rows.map(r => cols.map(c => esc(r[c])).join(','))];
writeFileSync(process.argv[3], lines.join('\n'));

An derselben Beispieldatei geprüft, erzeugte das Skript die Kopfzeile id,customer.name,customer.city,tags,total und drei Zeilen, wobei das verschachtelte Kundenobjekt zu zwei Spalten flach gemacht und die Liste mit Schlagwörtern mit Semikolon und Leerzeichen verbunden wurde. Die Funktion zum Setzen von Anführungszeichen folgt derselben Regel wie die Konverter-Seite: Eine Zelle wird nur dann in Anführungszeichen gesetzt, wenn sie das Trennzeichen, ein Anführungszeichen oder einen Zeilenumbruch enthält, und innere Anführungszeichen werden verdoppelt. Diese Regel ist das Ganze der CSV-Anführungszeichen, und sie richtig zu bekommen, ist der Unterschied zwischen einer Datei, die sich sauber öffnet, und einer Datei, die lautlos Spalten verschiebt.

Das Skript ist absichtlich kurz, damit Sie es lesen können, bevor Sie es ausführen. Es nimmt die Vereinigung aller Spalten über alle Zeilen, sodass eine Zeile ohne ein Feld eine leere Zelle bekommt, was zur Konverter-Seite passt. Wenn Sie einen Datenstrom für riesige Dateien brauchen oder Spalten umbenennen wollen, sind das Ergänzungen zu diesem Skript, kein Ersatz dafür.

Weg 6: die Werkzeuge, die Sie schon haben, VS Code und Excel

Zwei weitere lokale Wege brauchen keine neue Installation, wenn Sie die Werkzeuge schon nutzen. In VS Code wandelt eine Erweiterung die geöffnete JSON-Datei über die Befehlspalette in CSV um, was der schnellste lokale Weg ist, wenn Sie die Datei ohnehin schon bearbeiten. Die vollständige Anleitung, mit der Erweiterung und den genauen Befehlen, steht in der VS-Code-Anleitung, die unten verlinkt ist. In Excel liest Power Query eine JSON-Datei von Ihrer Festplatte und verwandelt sie in eine Tabelle, ohne dass die Datei je Ihren Rechner verlässt: Daten, Daten abrufen, Aus Datei, Aus JSON, dann die Spalten erweitern und laden. Beide sind vollständig offline, sobald das Werkzeug installiert ist, und beide behalten die Datei währenddessen auf Ihrem Rechner.

Diese Wege tauschen Kontrolle gegen Bequemlichkeit. VS Code und Excel entscheiden die Spaltenbehandlung für Sie, und ihre Vorgaben sind für flache Daten meist gut und für verschachtelte Daten gelegentlich überraschend. Wenn die Ausgabe falsch aussieht, ist die Diagnose dieselbe wie überall sonst: Prüfen Sie, ob verschachtelte Werte flach gemacht oder als JSON-Text stehen gelassen wurden, und prüfen Sie beim Öffnen das Trennzeichen. Für eine Datei, die Sie einmal umwandeln, schlägt jeder der beiden Wege eine neue Installation. Für eine Datei, die Sie wöchentlich umwandeln, schlägt ein Skript, das Ihnen gehört, beide, denn das Skript hängt nicht von einer Erweiterungsversion oder einem Dialog ab, den Sie erneut durchklicken müssen.

Es gibt noch eine ehrliche Anmerkung zu Weg 6. Excel und VS Code sind lokal, aber sie sind nicht minimal: Es sind große Programme mit eigenen Einstellungen, und eine Einstellung kann das Ergebnis verändern, zum Beispiel eine Ländereinstellung, die Semikolons statt Kommas erwartet. Wenn sich die Ausgabe zwischen zwei Rechnern unterscheidet, prüfen Sie die Werkzeugeinstellungen, bevor Sie die Daten beschuldigen. Skripte haben dieses Problem nicht, denn das Skript ist die Einstellung.

Im direkten Vergleich: welcher Weg für welche Situation

Nachdem alle sechs Wege getestet sind, wird die Wahl zu einer kurzen Entscheidungsliste. Einmalige Datei, nichts zu installieren, Privatsphäre zählt: die Konverter-Seite. Flache Datei, Sie leben im Terminal, Sie wollen einen Befehl: jq. Flache oder verschachtelte Datei, Sie nutzen ohnehin Python, Sie wiederholen den Auftrag vielleicht: Python mit pandas. Keine Pakete erlaubt, oder ein Kollege oder eine Kollegin muss es ebenfalls ausführen: Python mit Standardbibliothek plus eine Hilfsfunktion zur Umwandlung in flache Form für verschachtelte Daten. Umwandlung innerhalb eines Projekts oder eines Schritts beim Erstellen: das Node-Skript. Datei schon geöffnet, oder schon in einer Tabellenkalkulation: VS Code oder Excel.

Zwei Situationen verdienen eine direkte Antwort, weil sie ständig vorkommen. Vertrauliche Daten, bei denen die Datei auf dem Rechner bleiben muss: Jeder Weg auf dieser Seite genügt, aber ein kurzes Skript, das Sie selbst lesen, ist die stärkste Option, denn es gibt nichts Verborgenes, dem Sie vertrauen müssen. Lesen Sie das Skript, bevor Sie es auf vertrauliche Daten ausführen, behalten Sie das ursprüngliche JSON und ziehen Sie die Seite oder ein Skript jedem Werkzeug vor, das die Datei hochlädt. Wöchentliche Exporte, bei denen immer wieder dieselbe Form ankommt: ein Skript, Python mit pandas oder Node, denn derselbe Befehl liefert jedes Mal dieselben Spalten, und das Skript lässt sich zeitgesteuert ausführen.

Und zwei Situationen, in denen kein Weg auf dieser Seite die richtige Antwort ist. Mehrere Menschen brauchen dieselbe Umwandlung mit denselben Einstellungen: Eine gemeinsam genutzte Seite schlägt fünf Kopien eines Skripts, die auseinanderlaufen. Eine Datei, die größer ist als der Speicher: Jeder Weg hier gerät an seine Grenze, und die Korrektur ist, die Datei zu teilen oder sie Zeile für Zeile im Datenstrom zu verarbeiten, was ein anderer Auftrag ist als die Umwandlung. Diese Grenzen zu nennen, gehört zum Vergleich und ist keine Lücke darin.

Was jeder Weg verliert, und warum Sie das Original behalten

Jeder Weg auf dieser Seite verliert dieselben Informationen, denn der Verlust liegt im Wechsel des Formats und nicht im Werkzeug. Typen werden zu Text: Eine Zahl, ein Wahr-oder-Falsch-Wert und ein leerer Wert werden alle zu Zeichen in einer Zelle, und eine Tabellenkalkulation kann sie beim Öffnen neu deuten. Verschachtelte Objekte werden zu Spalten mit Punktnotation oder zu verbundenen Zellen, und Listen werden zu verbundenem Text oder zu zusätzlichen Zeilen, je nach dem Weg, den Sie gewählt haben. Es gibt keinen Weg zurück zum ursprünglichen Baum allein aus der CSV, denn die CSV vermerkt nicht, welche Spalten verschachtelt waren, welche Zellen Listen waren oder welche Werte Zahlen waren.

Darum lautet die erste Regel der lokalen Umwandlung: Behalten Sie das ursprüngliche JSON. Wandeln Sie nie an Ort und Stelle um, indem Sie die Quelle überschreiben. Benennen Sie die Ausgabe so, dass sie sich sortieren lässt, zum Beispiel orders-2026-10-26.csv, und behalten Sie das JSON daneben. Wenn sich die CSV als falsch herausstellt, erzeugen Sie sie aus dem JSON neu, statt eine Datei zu reparieren, die schon Informationen verloren hat. Diese Regel kostet nichts und erspart den einen Fehler, den Sie nicht rückgängig machen können.

Die zweite Regel ist, die Zeilen zu zählen. Die CSV sollte eine Kopfzeile plus eine Zeile pro Objekt im JSON enthalten, und ein schnelles Zählen fängt den häufigsten Fehler, nämlich dass ein Zeilenfinder die falsche Liste aus einer verpackten Antwort nimmt. Wenn die Anzahlen nicht übereinstimmen, zeigen Sie das Werkzeug auf die Liste selbst oder packen Sie die Antwort zuerst aus, bevor Sie irgendeiner Zeile vertrauen.

Fehlersuche bei allen sechs Wegen

Dieselben vier Probleme tauchen bei jedem Weg auf, und jedes hat eine Korrektur. Eine Öffnung in einer einzigen Spalte bedeutet eine falsche Trennzeichenwahl auf der Öffnungsseite und keine kaputten Daten: Importieren Sie erneut und wählen Sie das Trennzeichen, mit dem die Datei geschrieben wurde. Verschachtelte Daten, die als unlesbarer Repr-Text oder JSON-Text in Zellen erscheinen, bedeuten, dass die Umwandlung in flache Form übersprungen wurde: Das einfache Python-Skript und der jq-Einzeiler wandeln nicht flach um, also nutzen Sie die pandas-Version, das Node-Skript oder die Seite mit eingeschaltetem Schalter zur Umwandlung in flache Form.

Spalten in einer anderen Reihenfolge als in der Datei bedeuten, dass ein Werkzeug die Schlüssel sortiert hat: jq braucht keys_unsorted, und das Node-Skript bewahrt die Reihenfolge des ersten Auftretens. Vollständig fehlende Zeilen bedeuten, dass der Zeilenfinder eine andere Liste genommen hat als beabsichtigt, was bei verpackten API-Antworten passiert: Die Konverter-Seite hat einen Schritt zur Zeilenerkennung, und ein Skript braucht die Liste ausdrücklich übergeben. Datei nicht gefunden bedeutet, dass das Terminal in einem anderen Ordner ist als die Datei; prüfen Sie den Pfad, bevor Sie irgendetwas anderes tun. Ungültiges JSON bedeutet, dass die Quelldatei nahe der gemeldeten Stelle kaputt ist, meist ein fehlendes Anführungszeichen oder ein Komma am Ende; prüfen Sie sie und reparieren Sie die Quelle, denn kein Konverter sollte bei kaputter Eingabe raten.

Weiterführende Anleitungen

Häufig gestellte Fragen

Welche Möglichkeiten gibt es, JSON lokal in CSV umzuwandeln?

Sechs Wege: eine clientseitige Konverter-Seite, die in Ihrem Browser-Tab läuft, ein Python-Skript nur mit der Standardbibliothek, Python mit pandas json_normalize, ein jq-Einzeiler im Terminal, ein kleines Node-Skript mit einer Hilfsfunktion zur Umwandlung in flache Form und die Werkzeuge, die Sie schon haben, eine VS-Code-Erweiterung oder Excel Power Query. Alle sechs behalten die Datei auf Ihrem eigenen Rechner.

Welcher lokale Weg ist für eine einmalige Datei am besten?

Die Konverter-Seite. Fügen Sie das JSON ein oder laden Sie es hoch, wandeln Sie es im Tab um, laden Sie die CSV herunter, und nichts wird installiert. Dass sie lokal ist, prüfen Sie, indem Sie die Netzverbindung trennen und trotzdem umwandeln: Es funktioniert weiterhin, denn die Umwandlung läuft in Ihrem Browser.

Welcher lokale Weg verarbeitet verschachteltes JSON am besten?

Python mit pandas json_normalize, das Node-Skript mit einer Hilfsfunktion zur Umwandlung in flache Form oder die Konverter-Seite mit eingeschaltetem Schalter zur Umwandlung in flache Form. Alle drei verwandeln verschachtelte Objekte in Spalten mit Punktnotation, etwa customer.name. Das einfache Python-Skript lässt verschachtelte Werte als Repr-Text stehen, und der einfache jq-Einzeiler scheitert an verschachtelten Daten, statt eine falsche Tabelle zu erzeugen.

Muss ich etwas installieren, um JSON lokal in CSV umzuwandeln?

Nein, wenn Sie die Konverter-Seite nutzen oder ein Werkzeug, das Sie schon haben, etwa VS Code oder Excel. Python 3 ist auf den meisten Rechnern von Entwicklern schon installiert, und seine Standardbibliothek allein verarbeitet flache Daten. Pandas, jq und Node sind je eine Installation und laufen nach der Installation vollständig offline.

Warum öffnet sich meine lokale CSV als eine einzige Spalte?

Das ist eine falsche Trennzeichenwahl auf der Öffnungsseite und keine kaputten Daten. Ihre Tabellenkalkulation hat die Datei an einem anderen Trennzeichen geteilt als dem, mit dem sie geschrieben wurde. Importieren Sie die Datei erneut und wählen Sie das passende Trennzeichen, dann erscheinen die Spalten.

Warum erscheinen verschachtelte Werte als seltsamer Text in meiner CSV?

Weil die Umwandlung in flache Form übersprungen wurde. Das einfache Python-Skript mit Standardbibliothek schreibt verschachtelte Objekte als Python-Repr-Text, und pandas lässt Listen als Repr-Text stehen, solange Sie sie nicht verbinden. Nutzen Sie pandas json_normalize für Objekte plus eine Verbindung für kurze Listen, oder das Node-Skript, oder die Konverter-Seite mit eingeschalteter Umwandlung in flache Form.

Gehen bei einer lokalen Umwandlung Informationen verloren?

Ja, dieselben Informationen wie bei jeder Umwandlung. Werte bleiben erhalten, aber Typen werden zu Text, verschachtelte Objekte werden zu Spalten mit Punktnotation, und Listen werden zu verbundenen Zellen oder zu zusätzlichen Zeilen. Es gibt keinen Weg zurück zum ursprünglichen Baum allein aus der CSV, also behalten Sie immer die ursprüngliche JSON-Datei.

Wählen Sie Ihren Weg und wandeln Sie jetzt um

Beginnen Sie mit dem schnellsten lokalen Weg: Fügen Sie beliebiges JSON in den Konverter auf dieser Seite ein und sehen Sie zu, wie er es in Ihrem Browser-Tab umwandelt, ohne Hochladen, ohne Anmeldung, ohne dass etwas Ihren Rechner verlässt. Oder kopieren Sie die Python-, jq- oder Node-Version und führen Sie sie auf Ihren eigenen Dateien aus.

JSON-zu-CSV-Konverter öffnen
Alle Anleitungen