Hvordan konvertere JSON til CSV i Python

Kvinnehender som koder html og programmerer på skjermen laptop, web, utvikler.

Hvordan konvertere JSON til CSV i Python

Bildekreditt: oatawa/iStock/GettyImages

Du kan konvertere JSON til CSV i programmeringsspråket Python ved hjelp av innebygde biblioteker som følger med språket. Du kan gå gjennom JSON-objektet og sende dets nøkler og verdier som rader i en kommadelt verdifil. Husk at ikke alle JSON-filer enkelt kan representeres som enkelt CSV-er, så avhengig av formatet kan det hende du må bruke flere CSV-filer for å representere alle dataene på en nyttig måte.

Forstå JSON og CSV

JSON- og CSV-filer er to vanlige måter å representere digitale data på. JSON står for JavaScript-objektnotasjon, og det er en måte å representere data på som nestede tilordninger av nøkler til verdier så vel som lister over data. Det er inspirert av hvordan data er representert i programmeringsspråket JavaScript, men mange moderne programmeringsspråk inkludert Python har verktøy for å behandle JSON-data.

Dagens video

EN kommadelt verdi fil er en annen måte å representere strukturerte data på. Disse filene brukes ofte med regneark og lignende typer programmer, så hvis du vil

importer JSON til Excel det kan være nyttig å konvertere den til en CSV-fil først. Vanligvis inkluderer CSV-filer kolonneoverskrifter øverst i filen som indikerer hva som er lagret i hver kolonne. Deretter består hver linje i filen av flere verdier, én for hver kolonne, atskilt med komma. Det er spesielle regler for håndtering av data med komma i.

Akkurat som med JSON-filer, er det mange verktøy i mange programmeringsspråk, inkludert Python, for å generere og lese CSV-filer.

Konverter JSON til CSV

Du kan konvertere JSON til CSV ved å bruke de innebygde JSON- og CSV-bibliotekene i Python. Importer dem til koden din ved å legge til linjer som sier "import json" og "import csv" nær toppen av koden.

Bruk deretter JSON-bibliotekets "laste"-metoden for å importere dataene fra en JSON-fil. Den vil bli lastet inn som en Python-ordbok. Bruk ordbokens "nøkler" metode for å bestemme datafeltene i JSON-filen som blir kolonnene i CSV-filen.

Bruk CSV-bibliotekets "DictWriter" klasse for å lage en CSV-fil med disse kolonnene, og spesifisere dem ved å bruke DictWriters "feltnavn" argument. Bruk sin "skrivehoder"-metoden for å skrive ut kolonnenavnene øverst i CSV-filen.

Deretter går du gjennom JSON-objektet med en for løkke. Anrop CSV-objektets "writerow"-metode på hvert dataelement i JSON-filen for å lage en tilsvarende rad i CSV-filen.

Komplekse JSON-filer

Noen komplekse JSON-filer kan være vanskeligere å representere som CSV-er. Dette kan inkludere filer som ikke umiddelbart følger en standard rad- og kolonnestruktur. Hvis du har å gjøre med en slik fil og ønsker å konvertere den til en CSV, har du noen alternativer.

Først kan du se etter det totale settet med datafelt som forekommer i JSON-filen og gjøre disse til kolonnene i CSV-en din. La en kolonne stå tom i en bestemt rad hvis den ikke vises der. Bruk alternativet "extrasaction='ignorer'" ved å sette opp Python CSV DictWriter til å automatisk gjøre dette for felt som ikke forekommer i en bestemt del av data.

Du kan også vurdere å representere JSON-filen som flere CSV-er, en for hver type data som er representert i den. Bruk Python hvis setninger for å oppdage hvilken CSV-fil et bestemt datastykke skal skrives til.

Denne teknikken kan også være nyttig for nestede JSON-filer, der JSON-objekter inneholder andre objekter. Disse underobjektene kan legges inn i sin egen CSV-fil med en indikasjon på hvilken rad i den primære CSV-en de tilsvarer.