Python XML para CSV

Python XML para CSV

Descobriremos como a linguagem de programação Python pode ser usada para converter dados do formato XML em um arquivo CSV neste post. O Python contém vários módulos e pacotes úteis que reduzem a quantidade de código que usamos na vida diária. Esse recurso do Python o torna uma opção popular entre uma grande parte da comunidade de desenvolvedores, principalmente para cientistas de dados. Python também é preferido por muitos devido à sua confiabilidade e facilidade. Isso tem o benefício significativo de trabalhar com grandes conjuntos de dados simples.

O que é xml?

XML é uma abreviação da linguagem de marcação extensível. O uso do XML nos serviços da Web é essencial ou que desempenha um papel importante/principal nos serviços da Web. Isso simplifica transferir os dados entre várias plataformas. Oferece um método padronizado de marcar os dados configurados como uma hierarquia ou árvore. Torna -se uma excelente opção na transmissão de dados e serviços da Web porque simplifica a complexidade e permite que os dados sejam lidos por vários aplicativos incompatíveis. XML geralmente pode ser um pouco mais pesado. Se você estiver transferindo mais dados, isso implica que você também precisará de mais tempo de execução, espaço extra e velocidade de transferência. Usuários em geral não podem ler os dados em formato XML. Essa estrutura ou formato pode precisar ser alterado para torná-lo mais fácil de usar e legível.

O que é CSV?

CSV é uma abreviação de “valores separados por vírgula”. Uma vírgula é usada para separar os valores de dados em um arquivo CSV. Os dados são armazenados em uma estrutura tabular neste formato de arquivo popular. O formato de arquivo do CSV é suportado por aplicativos ou ferramentas de quase todas as linguagens de programação conhecidas. Como os clientes em geral não conseguem entender ou ler as informações em formato XML, pode ser necessário convertê-las em um formato mais fácil de usar, como o CSV. Um arquivo CSV pode ser prontamente importado, exportado e convertido em qualquer tipo de arquivo no desenvolvimento da Web.

Crie um arquivo XML no Python

Este artigo é focado principalmente na conversão de XML em CSV. Mas, para ser um bom desenvolvedor de Python, você deve primeiro saber como podemos criar um arquivo XML usando Python. Você pode criar um arquivo XML no Python usando qualquer um dos seguintes métodos:

Método 1: Criando XML usando o módulo Minidom

Para usar o XML.função dom (), primeiro importamos o módulo Minidom. O elemento raiz é então criado e adicionado ao XML. Depois disso, criamos um produto infantil do nome dos pais, “Python”. Depois de criar o produto infantil, você pode salvar o nome do arquivo de sua escolha. Lembre -se de incluir o “.Extensão XML ”com o nome do arquivo especificado. A interface do modelo de objeto de documento (DOM) é minimamente implementada usando o módulo Minidom, que possui uma API que é idêntica a outros idiomas. Ele pretende ser muito menor e mais simples do que o DOM completo.

Saída:

O arquivo XML é criado no diretório atual.

Método 2: Criando XML usando o Módulo ElementTree

Para começar, devemos importar “XML.Etree.ElementTree ”primeiro para criar uma subárvore. Depois disso, criamos o elemento raiz, que deve estar no bloco pretendido para evitar um erro. Podemos simplesmente criar ou definir uma estrutura de árvore após a criação do elemento raiz. Então, salvamos o arquivo com o “.XML ”extensão. Podemos dividir um documento usando o ElementTree em uma estrutura de árvore gerenciável.

Saída:

Como você pode ver, nosso arquivo XML é criado. Também podemos abri -lo usando os navegadores da web para visualizar o conteúdo.

Como alterar XML para CSV em Python

Enquanto aprendemos a criar arquivos XML no Python, agora discutimos como converter os arquivos XML para CSV. Os estágios a seguir estão normalmente envolvidos na conversão de XML em CSV:

  1. Leia o arquivo XML.
  2. Crie um CSV.
  3. O arquivo CSV deve receber um cabeçalho contendo os campos que devem ser incluídos.
  4. Crie uma nova linha no arquivo CSV e extraia os campos necessários para cada elemento XML.

Método 1: Convertendo XML em CSV usando Python simples

Primeiro, veremos um método para conversão XML para CSV que não precisa de bibliotecas adicionais para serem instaladas. Python tem um módulo chamado XML.Etree.ElementTree que pode ser usado para manipular XML. Este é o mesmo módulo que usamos para criar o arquivo XML. Este módulo simplifica para você produzir e analisar os arquivos XML. O código a seguir importa os dados em XML, extraia as informações sobre os alunos (nome, rolo e curso) e gerar um registro/linha no CSV para cada aluno. Três funções principais são usadas para fazer isso:

ElementTree.parse (): Usado para importar os dados XML.

encontrar tudo(): Ele localiza todos os elementos que são as crianças diretas do elemento atual e têm a tag fornecida.

encontrar(): Com a tag especificada, esta função localiza o primeiro elemento filho.

Saída:

Método 2: convertendo XML em CSV usando pandas

Embora existam muitas funções e bibliotecas para analisar o XML, usamos o módulo ElementTree para este exemplo. Todo o arquivo XML é analisado e armazenado na forma de uma árvore usando o módulo ElementTree. Para analisar o XML, inclui o método parse (). O método getRoot () da árvore retorna o elemento raiz da árvore. Nós iteramos sobre a árvore usando um loop para o loop e os dados são recuperados usando os nomes de tags. O módulo pandas é usado para armazenar os dados analisados ​​em um quadro de dados. Em seguida, usamos a função to_csv (), que é fornecida pelos pandas, para converter o DataFrame em CSV.

Saída:

Método 3: Convertendo XML em CSV usando o módulo XMLTodict

Converter um XML em um objeto Py ou Python é outra abordagem para trabalhar com XML. Isso permite procurar elementos diretamente dentro do arquivo XML sem fazer nenhum processamento XML. O código a seguir executa a mesma tarefa que o código que o precede. Mas em vez de usar xml.Etree para analisar o XML, ele usa o módulo xmltodict. Você deve instalar o xmltodict individualmente porque é um módulo de terceiros.

Com a ajuda do .função parse () do módulo XMLTodict, você pode simplesmente acessar os dados lendo o XML e convertendo -os em um dicionário ordenado.

Saída:

Método 4: Convertendo XML em CSV usando o módulo Unitangle

Por último, mas não menos importante, você pode usar o módulo Python Unnangle para converter XML em CSV. Destange analisa um arquivo XML e disponibiliza os dados prontamente, assim como o XMLTodict. Como o Untangle também é um módulo de terceiros, você deve instalá-lo separadamente através do comando pip:

O script que segue importa os dados de um arquivo XML, gera um CSV e depois usa o módulo Untangle para extrair os dados do XML e escrevê -lo no CSV.

Saída:

Conclusão

Neste tutorial, discutimos os múltiplos métodos para converter XML em CSV em Python. Como mostramos, algumas bibliotecas no Python podem ser usadas para conversão XML para CSV. Você pode escolher qualquer um deles, dependendo da sua exigência. Se tudo o que você deseja fazer é converter XML em CSV, o módulo Python embutido para XML.Etree oferece o melhor desempenho. No entanto, o xmltodict é uma ferramenta extremamente útil se você também precisar criar um arquivo XML.