Hur man konverterar JSON till CSV i Python

Kvinna händer kodar html och programmering på skärmen laptop, webb, utvecklare.

Hur man konverterar JSON till CSV i Python

Bildkredit: oatawa/iStock/GettyImages

Du kan konvertera JSON till CSV i programmeringsspråket Python använder inbyggda bibliotek som följer med språket. Du kan gå igenom JSON-objektet och mata ut dess nycklar och värden som rader i en kommaseparerad värdefil. Tänk på att inte alla JSON-filer lätt kan representeras som enskilda CSV-filer, så beroende på formatet kan du behöva använda flera CSV-filer för att representera all data på ett användbart sätt.

Förstå JSON och CSV

JSON- och CSV-filer är två vanliga sätt att representera digital data. JSON står för JavaScript-objektnotation, och det är ett sätt att representera data som kapslade mappningar av nycklar till värden såväl som listor med data. Det är inspirerat av hur data representeras i programmeringsspråket JavaScript, men många moderna programmeringsspråk inklusive Python har verktyg för att bearbeta JSON-data.

Dagens video

A kommaseparerat värde fil är ett annat sätt att representera strukturerad data. Dessa filer används ofta med kalkylblad och liknande typer av program, så om du vill

importera JSON till Excel det kan vara användbart att först konvertera den till en CSV-fil. I allmänhet innehåller CSV-filer kolumnrubriker överst i filen som anger vad som lagras i varje kolumn. Sedan består varje rad i filen av flera värden, ett för varje kolumn, separerade med kommatecken. Det finns särskilda regler för hantering av data med kommatecken i.

Precis som med JSON-filer finns det många verktyg i många programmeringsspråk, inklusive Python, för att generera och läsa CSV-filer.

Konvertera JSON till CSV

Du kan konvertera JSON till CSV med de inbyggda JSON- och CSV-biblioteken i Python. Importera dem till din kod genom att lägga till rader som säger "import json" och "import csv" nära toppen av din kod.

Använd sedan JSON-bibliotekets "ladda"-metoden för att importera data från en JSON-fil. Den kommer att laddas som en Python-ordbok. Använd ordbokens "nycklar" metod för att bestämma datafälten i JSON-filen som kommer att bli kolumnerna i din CSV-fil.

Använd CSV-bibliotekets "Diktskrivare" klass för att skapa en CSV-fil med dessa kolumner, specificera dem med diktskrivarens "fältnamn" argument. Använd dess "skrivhuvuden"-metod för att mata ut kolumnnamnen överst i CSV-filen.

Gå sedan igenom JSON-objektet med a för slinga. Ringa upp CSV-objektets "writerow"-metod på varje dataelement i JSON-filen för att skapa en motsvarande rad i CSV-filen.

Komplexa JSON-filer

Vissa komplexa JSON-filer kan vara svårare att representera som CSV: er. Detta kan inkludera filer som inte omedelbart följer en standardrad- och kolumnstruktur. Om du har att göra med en sådan fil och vill konvertera den till en CSV, har du några alternativ.

Först kan du leta efter den totala uppsättningen av datafält som förekommer i JSON-filen och göra dessa till kolumnerna i din CSV. Lämna en kolumn tom i en viss rad om den inte visas där. Använd alternativet "extrasaction='ignorera'" när du ställer in Python CSV DictWriter för att automatiskt göra detta för fält som inte förekommer i en viss del av data.

Du kan också överväga att representera JSON-filen som flera CSV: er, en för varje typ av data som finns representerad i den. Använd Python om uttalanden för att upptäcka vilken CSV-fil en viss databit ska skrivas till.

Den här tekniken kan också vara användbar för kapslade JSON-filer, där JSON-objekt innehåller andra objekt. Dessa underobjekt kan läggas in i sin egen CSV-fil med en indikation på vilken rad i den primära CSV-filen de motsvarar.