Hoe JSON naar CSV in Python te converteren

Vrouw handen coderen html en programmeren op scherm laptop, web, ontwikkelaar.

Hoe JSON naar CSV in Python te converteren

Afbeelding tegoed: oatawa/iStock/GettyImages

U kunt converteren JSON naar CSV in de programmeertaal Python met behulp van ingebouwde bibliotheken die bij de taal worden geleverd. U kunt door het JSON-object lopen en de sleutels en waarden als rijen in een door komma's gescheiden waardebestand uitvoeren. Houd er rekening mee dat niet alle JSON-bestanden gemakkelijk kunnen worden weergegeven als enkele CSV's, dus afhankelijk van de indeling moet u mogelijk meerdere CSV-bestanden gebruiken om alle gegevens op een bruikbare manier weer te geven.

JSON en CSV begrijpen

JSON- en CSV-bestanden zijn twee veelvoorkomende manieren om digitale gegevens weer te geven. JSON staat voor JavaScript-objectnotatie, en het is een manier om gegevens weer te geven als geneste toewijzingen van sleutels aan waarden en als lijsten met gegevens. Het is geïnspireerd op hoe gegevens worden weergegeven in de programmeertaal JavaScript, maar veel moderne programmeertalen, waaronder Python, hebben tools voor het verwerken van JSON-gegevens.

Video van de dag

EEN door komma's gescheiden waarde bestand is een andere manier om gestructureerde gegevens weer te geven. Deze bestanden worden vaak gebruikt met spreadsheets en soortgelijke soorten programma's, dus als u dat wilt: importeer JSON naar Excel het kan handig zijn om het eerst naar een CSV-bestand te converteren. Over het algemeen bevatten CSV-bestanden kolomkoppen boven aan het bestand die aangeven wat er in elke kolom is opgeslagen. Elke regel in het bestand bestaat dan uit meerdere waarden, één voor elke kolom, gescheiden door komma's. Er zijn speciale regels voor het omgaan met gegevens met komma's erin.

Net als bij JSON-bestanden zijn er veel tools in veel programmeertalen, waaronder Python, voor het genereren en lezen van CSV-bestanden.

Converteer JSON naar CSV

U kunt JSON naar CSV converteren met behulp van de ingebouwde JSON- en CSV-bibliotheken in Python. Importeer ze in uw code door regels toe te voegen met de tekst "import json" en "import csv" bovenaan uw code.

Gebruik vervolgens de JSON-bibliotheek "laden" om de gegevens uit een JSON-bestand te importeren. Het wordt geladen als een Python-woordenboek. Gebruik het woordenboek "sleutels" om de gegevensvelden in het JSON-bestand te bepalen die de kolommen in uw CSV-bestand worden.

Gebruik de CSV-bibliotheek "Dictschrijver" class om een ​​CSV-bestand met die kolommen te maken en ze op te geven met behulp van de DictWriter's "veldnamen" argument. Gebruik zijn "schrijfkoppen" om de kolomnamen boven aan de CSV uit te voeren.

Loop vervolgens door het JSON-object met a for loop. Telefoongesprek de "writerow" -methode van het CSV-object op elk gegevenselement in het JSON-bestand om een ​​overeenkomstige rij in het CSV-bestand te maken.

Complexe JSON-bestanden

Sommige complexe JSON-bestanden kunnen moeilijker als CSV's worden weergegeven. Dit kunnen bestanden zijn die niet meteen in een standaard rij- en kolomstructuur passen. Als je met zo'n bestand te maken hebt en het naar een CSV wilt converteren, heb je een paar opties.

Ten eerste kunt u zoeken naar de totale set gegevensvelden die in het JSON-bestand voorkomen en deze de kolommen van uw CSV maken. Laat een kolom leeg in een bepaalde rij als deze daar niet wordt weergegeven. Gebruik de optie "extrasaction='negeren'" bij het instellen van de Python CSV DictWriter om dit automatisch te doen voor velden die niet voorkomen in een bepaald stuk gegevens.

U kunt ook overwegen het JSON-bestand weer te geven als meerdere CSV's, één voor elk type gegevens dat erin wordt weergegeven. Python gebruiken indien instructies om te detecteren naar welk CSV-bestand een bepaald stuk gegevens moet worden geschreven.

Deze techniek kan ook handig zijn voor geneste JSON-bestanden, waarin JSON-objecten andere objecten bevatten. Deze sub-objecten kunnen in hun eigen CSV-bestand worden geplaatst met een indicatie van de rij in de primaire CSV waarmee ze overeenkomen.