
Föreställ dig 20 namn och deras telefonnummer skrivna i ett enkelt Word-dokument. Svårt att följa, men ändå kanske du orkar läsa. Föreställ dig nu 200 namn, men den här gången deras serienummer och adresser, tillsammans med telefonnummer i vanlig text. Klumpigt va?
Tror du inte att det skulle vara tydligare om vi kunde se dessa uppgifter i ett strukturerat format? Ja exakt! Det är därför datavetare eller analytiker använder formaterad data för sin analys. Två sådana format att lagra eller arbeta med data är JSON och CSV.
JSON är lätta filer kända för datautbyte mellan applikationer eller servrar. De lagrar data i nyckel-värdepar.
Medan CSV-filer är kommaseparerade värden för att lagra big data. Även om de är kommaseparerade värden, hittar du dem ofta i tabellstruktur när du använder Python för analys.
Innehållsförteckning
Varför konvertera JSON till CSV i Python?
Snabbare dataanalys: Python-operationer på CSV-filer är snabbare. Du kan snabbt visa, sortera, filtrera och trimma data snabbare i CSV-format. Python har också ett bibliotek som heter Pandas för effektiv dataanalys av CSV-filer.
Stöd för olika databearbetningsverktyg: Även om JSON-filer är lätta och enkla för datautbyte, är CSV-filer bekvämare att visualisera och analysera med hjälp av databaser som kalkylblad och programmeringsspråk som Python.
Minneseffektivt: JSON-formatet inkluderar metadata, vilket belastar minnet en del, medan CSV bara är kommaseparerade värden utan ytterligare skiljetecken eller metadata. Dessutom kräver analys av JSON-data mer minne än CSV.
Så jämfört med JSON är CSV-format mer minneseffektivt för att lagra och bearbeta stora datamängder.
Människoläsbar: CSV-format är väl lämpat för manuell inspektion. När det öppnas i tabeller eller kalkylblad kan du enkelt läsa och förstå CSV-data, medan JSON-formatet är något komplicerat att läsa, särskilt när det inkluderar kapslade objekt.
Prestanda: Parsning och bearbetning av CSV-filer är snabbare och kräver mindre minne jämfört med JSON-filer, vilket resulterar i optimal prestanda.
Hur konverterar man JSON till CSV i Python?
Här är stegen för att konvertera JSON till CSV i Python.
Steg 1: Importera inbyggda JSON- och CSV-moduler.
import json import csv
Steg 2: Låt oss anta att vi har JSON-data i en fil som heter json_data.json. Läs in dessa data till en variabel med hjälp av laddningsfunktionen.
with open('json_data.json') as data: json = json.load(data)
Steg 3: Skapa en csv-fil med JSON-rubriker som kolumnnamn och motsvarande värden i cellerna.
headers = json[0].keys() with open('data.csv', 'w', newline="") as csv_file: csv_writer = csv.DictWriter(csv_file, fieldnames=headers) csv_writer.writeheader() for row in json: csv_writer.writerow(row)
Hur konverterar man JSON till CSV med Pandas i Python?
Du kan skriva din egen anpassade kod för konverteringen med JSON och CSV inbyggda bibliotek som visas ovan, men Pandas är din vän. Det gör konverteringen ännu enklare med bara två rader kod.
För de som inte känner till Pandas, det är Pythons bibliotek för att manipulera och analysera stora data. Så här kan du enkelt konvertera JSON till CSV med Pandas.
Steg 1: För att konvertera JSON-filer till CSV måste du först importera Pandas i Python.
Import pandas as pd
Steg 2: Ladda JSON-data till Pandas DataFrame.
data = pd.read_csv('json_data.json')
Steg 3: Skriv data till CSV-fil.
data.to_csv('csv_data', index=False)
Filen med namnet ’csv_data’ kommer att skapas i den aktuella arbetskatalogen för att lagra den konverterade CSV-datan.
”index = False” exkluderar här indexkolumnen i CSV-filen.
Det är det, det är så enkelt att konvertera JSON till CSV med Pandas.
Saker att tänka på när du konverterar stora JSON-filer till CSV
- Minne – Det allra första problemet du vanligtvis möter med stora datamängder är minnet. Om du försöker ladda hela data till en CSV-fil på en gång kan du stöta på minnesproblem. Så, bearbeta den stora datan till CSV i bitar för att undvika minnesproblem.
- Ta bort redundans – Att ha samma redundanta data flera gånger i datamängden ökar bara storleken men lägger inte till något värde till datan. Så ta bort redundanta data från din datauppsättning. På så sätt kan du minska storleken på datafilen, vilket resulterar i snabbare konvertering.
- Använd bibliotek – Om data är små kan du skriva en anpassad Python-kod för att konvertera den till CSV, men i fallet med stora data bör du använda ett Python-bibliotek som Pandas för att effektivt konvertera JSON till CSV.
- Säkerhetskopiering – Ha en säkerhetskopia av dina data samtidigt som du konverterar stora JSON-filer till CSV. Detta hjälper dig att komma tillbaka till originaldata om något går fel med konverteringen.
Potentiella fel som kan uppstå under konvertering
#1. Unicode-fel
Du skulle stöta på det här felet när du skriver specialtecken eller icke-ASCII-tecken till en CSV-fil från JSON-data.
För att fixa detta bör du ange en lämplig kodning i den öppna funktionen som används vid konvertering av JSON till CSV-filer.
Du kan göra detta genom att lägga till en parameter som kallas kodning till den öppna funktionen, som visas nedan:
with open('data.csv', 'w', newline="", encoding='utf-8') as csv_file
#2. Värdefel: Förväntat objekt eller värde
Det här felet dyker upp när det finns ett problem med innehållet i JSON-filen, främst när funktionen inte kan analysera JSON-objektet eller filen.
Så se till att din JSON-data är välformaterad och följer JSON-syntax.
Dessutom, om din JSON-data innehåller kapslade objekt som arrayer, se till att JSON-objekten är inneslutna i [..] och arrayerna är inlindade [..]. Se också till att data är tillplattade med ”JSON.normalize” innan du konverterar kapslad JSON till CSV.
En av de största skillnaderna mellan JSON och CSV är att JSON-data inte har rubriker som CSV. Så, hantera CSV-huvudena väl medan du konverterar JSON till CSV. Du kan ge dem värden eller lämna dem tomma som du vill.
Men om du ger rubriker till CSV-filen, se till att deras datatyp matchar den faktiska informationen i filen.
Slutsats
Att konvertera JSON till CSV är enkelt när det görs i Python. Ännu enklare om vi använder Pandas-biblioteket.
Så den här artikeln visar hur du konverterar JSON-filer till CSV med Python. Vi har också visat dig hur du använder Pandas för att effektivt konvertera JSON till CSV.
Följt av några viktiga saker att tänka på för en smidigare konverteringsprocess och vanliga fel som du kan stöta på under konverteringen.
Du kan också kolla in konvertera JSON-filer till Excel.