Python XML til CSV

Python XML til CSV

Vi vil oppdage hvordan Python -programmeringsspråket kan brukes til å konvertere data fra XML -format til en CSV -fil i dette innlegget. Python inneholder flere nyttige moduler og pakker som reduserer mengden kode som vi bruker i dagliglivet. Denne funksjonen til Python gjør det til et populært alternativ blant en stor del av utviklersamfunnet, spesielt for dataforskere. Python er også foretrukket av mange på grunn av dens pålitelighet og letthet. Dette har den betydelige fordelen med å jobbe med store datasett enkle.

Hva er XML?

XML er en forkortelse av utvidbart markeringsspråk. Bruken av XML i webtjenester er essensielt eller at den spiller en nøkkel/hovedrolle i webtjenester. Dette gjør det enkelt å overføre dataene mellom flere plattformer. Det tilbyr en standardisert metode for å merke opp dataene som er satt opp som et hierarki eller tre. Det blir et utmerket alternativ innen dataoverføring og webtjenester fordi det forenkler kompleksitet og lar dataene leses av en rekke inkompatible apper. XML kan generelt være litt tyngre. Hvis du overfører mer data, innebærer det at du også krever mer runtime, ekstra plass og overføringshastighet. Generelle brukere kan ikke lese dataene i XML -format. Denne strukturen eller formatet må kanskje endres for å gjøre den mer brukervennlig og lesbar.

Hva er CSV?

CSV er en forkortelse av "komma-separerte verdier". Et komma brukes til å skille dataverdiene i en CSV -fil. Dataene lagres i en tabellstruktur i dette populære filformatet. Filformatet til CSV støttes av applikasjoner eller verktøy for nesten alle kjente programmeringsspråk. Siden generelle klienter ikke kan forstå eller lese informasjonen i XML-format, kan det være nødvendig å konvertere den til et mer brukervennlig format som CSV. En CSV -fil kan lett importeres, eksporteres og konverteres til hvilken som helst filtype i webutvikling.

Opprett en XML -fil i Python

Denne artikkelen er hovedsakelig fokusert på konvertering av XML til CSV. Men for å være en god Python -utvikler, bør du først vite hvordan vi kan lage en XML -fil ved hjelp av Python. Du kan opprette en XML -fil i Python ved å bruke noen av følgende metoder:

Metode 1: Opprette XML ved hjelp av minidommodulen

Å bruke XML.DOM () Funksjon, vi importerer først minidommodulen. Rotelementet blir deretter opprettet og lagt til XML. Etter det lager vi et barnprodukt av foreldrenes navn, "Python". Etter å ha opprettet barneproduktet, kan du lagre filnavnet du ønsker. Husk å inkludere “.XML ”utvidelse med det spesifiserte filnavnet. Document Object Model (DOM) -grensesnittet implementeres minimalt ved hjelp av minidommodulen som har et API som er identisk med andre språk. Den tar sikte på å være både mye mindre og enklere enn den fulle DOM.

Produksjon:

XML -filen er opprettet i den gjeldende katalogen.

Metode 2: Opprette XML ved hjelp av ElementTree -modulen

For å starte, må vi importere “XML.etree.ElementTree ”først for å lage en undertrekk. Etter det lager vi rotelementet, som må være i den tiltenkte blokken for å unngå en feil. Vi kan ganske enkelt lage eller definere en trestruktur etter opprettelsen av rotelementet. Deretter lagrer vi filen med ".XML ”-forlengelse. Vi kan dele et dokument ved hjelp av elementTree i en håndterbar trestruktur.

Produksjon:

Som du ser opprettes vår XML -fil. Vi kan også åpne den ved hjelp av nettleserne for å se innholdet.

Hvordan endre XML til CSV i Python

Mens vi lærte hvordan vi lager XML -filer i Python, diskuterer vi nå hvordan du konverterer XML -filene til CSV. Følgende trinn er vanligvis involvert i å konvertere XML til CSV:

  1. Les XML -filen.
  2. Opprett en CSV.
  3. CSV -filen skal gis en overskrift som inneholder feltene som må inkluderes.
  4. Lag en ny rad i CSV -filen og trekke ut de nødvendige feltene for hvert XML -element.

Metode 1: Konvertere XML til CSV ved hjelp av vanlig python

Først ser vi på en metode for XML til CSV -konvertering som ikke trenger noen ekstra biblioteker for å bli installert. Python har en modul som heter XML.etree.ElementTree som kan brukes til å manipulere XML. Dette er den samme modulen som vi brukte til å opprette XML -filen. Denne modulen gjør det enkelt for deg å produsere og analysere XML -filene. Følgende kode importerer dataene i XML, trekker ut informasjonen om studentene (navn, rull og kurs), og genererer en post/rad i CSV for hver student. Tre nøkkelfunksjoner brukes til å gjøre dette:

ElementTree.parse (): Brukes til å importere XML -dataene.

findAll (): Det lokaliserer alle elementer som er det nåværende elementets direkte barn og har den medfølgende taggen.

finne(): Med den spesifiserte taggen lokaliserer denne funksjonen det første barneelementet.

Produksjon:

Metode 2: Konvertere XML til CSV ved hjelp av pandaer

Selv om det er mange funksjoner og biblioteker for å analysere XML, bruker vi ElementTree -modulen for dette eksemplet. Hele XML -filen er analysert og lagret i form av et tre ved hjelp av ElementTree -modulen. For å analysere XML, inkluderer den parse () -metoden. Getroot () -metoden til treet returnerer treets rotelement. Vi itererer over treet ved hjelp av en for loop og dataene blir hentet ved hjelp av tagnavnene. Pandas -modulen brukes til å lagre de analyserte dataene i en DataFrame. Deretter bruker vi TO_CSV () -funksjonen, som er levert av Pandas, for å konvertere DataFrame til CSV.

Produksjon:

Metode 3: Konvertere XML til CSV ved hjelp av XMLTodict -modulen

Å konvertere en XML til et PY -objekt eller Python -objekt er en annen tilnærming til å jobbe med XML. Dette lar deg søke etter elementer direkte i XML -filen uten å gjøre noe XML -behandling. Koden som følger utfører den samme oppgaven som koden som går foran den. Men i stedet for å bruke XML.etree for å analysere XML, den bruker XMLTodict -modulen. Du må installere XMLTodict individuelt fordi det er en tredjepartsmodul.

Ved hjelp av .Parse () -funksjonen fra XMLTodict -modulen, du kan ganske enkelt få tilgang til dataene ved å lese XML og konvertere den til en bestilt ordbok.

Produksjon:

Metode 4: Konvertere XML til CSV ved hjelp av Untangle -modulen

Sist, men ikke minst, kan du bruke Untangle Python -modulen for å konvertere XML til CSV. Untangle analyserer en XML -fil og gjør dataene lett tilgjengelige, akkurat som XMLTodict gjør. Siden Untangle også er en tredjepartsmodul, må du installere den separat via PIP-kommandoen:

Skriptet som følger import av dataene til en XML -fil, genererer en CSV og bruker deretter Untangle -modulen for å trekke ut dataene fra XML og skrive den inn i CSV.

Produksjon:

Konklusjon

I denne opplæringen diskuterte vi flere metoder for å konvertere XML til CSV i Python. Som vi har vist, kan noen biblioteker i Python brukes til XML til CSV -konvertering. Du kan velge noen av dem avhengig av kravet ditt. Hvis alt du vil gjøre er å konvertere XML til CSV, den innebygde Python-modulen for XML.Etree tilbyr den beste ytelsen. Imidlertid er xmltodict et ekstremt nyttig verktøy hvis du også trenger å opprette en XML -fil.