Sådan konverteres JSON til CSV i Python

Kvindehænder, der koder html og programmerer på skærmen laptop, web, udvikler.

Sådan konverteres JSON til CSV i Python

Billedkredit: oatawa/iStock/GettyImages

Du kan konvertere JSON til CSV i programmeringssproget Python ved hjælp af indbyggede biblioteker, der følger med sproget. Du kan sløjfe gennem JSON-objektet og udlæse dets nøgler og værdier som rækker i en kommasepareret værdifil. Husk, at ikke alle JSON-filer nemt kan repræsenteres som enkelte CSV'er, så afhængigt af formatet skal du muligvis bruge flere CSV-filer for at repræsentere alle data på en nyttig måde.

Forståelse af JSON og CSV

JSON- og CSV-filer er to almindelige måder at repræsentere digitale data på. JSON står for JavaScript-objektnotation, og det er en måde at repræsentere data som indlejrede tilknytninger af nøgler til værdier såvel som lister over data. Det er inspireret af, hvordan data er repræsenteret i JavaScript-programmeringssproget, men mange moderne programmeringssprog inklusive Python har værktøjer til at behandle JSON-data.

Dagens video

EN kommasepareret værdi fil er en anden måde at repræsentere strukturerede data på. Disse filer bruges ofte sammen med regneark og lignende typer programmer, så hvis du vil

importer JSON til Excel det kan være nyttigt at konvertere den til en CSV-fil først. Generelt indeholder CSV-filer kolonneoverskrifter øverst i filen, der angiver, hvad der er gemt i hver kolonne. Derefter består hver linje i filen af ​​flere værdier, en for hver kolonne, adskilt af kommaer. Der er særlige regler for håndtering af data med kommaer i.

Ligesom med JSON-filer er der mange værktøjer i mange programmeringssprog, inklusive Python, til at generere og læse CSV-filer.

Konverter JSON til CSV

Du kan konvertere JSON til CSV ved hjælp af de indbyggede JSON- og CSV-biblioteker i Python. Importer dem til din kode ved at tilføje linjer, der siger "import json" og "import csv" nær toppen af ​​din kode.

Brug derefter JSON-bibliotekets "belastning" metode til at importere data fra en JSON-fil. Den vil blive indlæst som en Python-ordbog. Brug ordbogens "nøgler" metode til at bestemme datafelterne i JSON-filen, der bliver til kolonnerne i din CSV-fil.

Brug CSV-bibliotekets "DictWriter" klasse for at oprette en CSV-fil med disse kolonner, og specificere dem ved hjælp af dikterens "feltnavne" argument. Brug dens "skrivehoveder" metode til at udlæse kolonnenavnene øverst i CSV'en.

Gå derefter gennem JSON-objektet med en for sløjfe. Opkald CSV-objektets "writerow"-metode på hvert dataelement i JSON-filen for at oprette en tilsvarende række i CSV-filen.

Komplekse JSON-filer

Nogle komplekse JSON-filer kan være sværere at repræsentere som CSV'er. Dette kan omfatte filer, der ikke umiddelbart følger en standard række- og kolonnestruktur. Hvis du har med sådan en fil at gøre og ønsker at konvertere den til en CSV, har du et par muligheder.

Først kan du kigge efter det samlede sæt af datafelter, der forekommer i JSON-filen, og gøre disse til kolonnerne i din CSV. Lad en kolonne være tom i en bestemt række, hvis den ikke vises der. Brug muligheden "extrasaction='ignorer'" ved opsætning af Python CSV DictWriter til automatisk at gøre dette for felter, der ikke forekommer i et bestemt stykke data.

Du kan også overveje at repræsentere JSON-filen som flere CSV'er, en for hver type data, der er repræsenteret i den. Brug Python hvis sætninger for at opdage, hvilken CSV-fil et bestemt stykke data skal skrives til.

Denne teknik kan også være nyttig til indlejrede JSON-filer, hvor JSON-objekter indeholder andre objekter. Disse underobjekter kan lægges ind i deres egen CSV-fil med angivelse af, hvilken række i den primære CSV de svarer til.