JSON para CSV em Python

Manav Narula 30 janeiro 2023
  1. Use o método Pandas DataFrames to_csv() para converter JSON em CSV em Python
  2. Use o módulo csv para converter JSON em um arquivo CSV
JSON para CSV em Python

JSON significa JavaScript Object Notation. É baseado no formato de objetos em JavaScript e é uma técnica de codificação para representar dados estruturados. É amplamente utilizado atualmente, especialmente para compartilhar dados entre servidores e aplicativos da web.

Um arquivo CSV é usado para armazenar dados em um formato tabular, como planilhas do Excel.

Neste tutorial, aprenderemos como converter dados JSON em um arquivo CSV.

Use o método Pandas DataFrames to_csv() para converter JSON em CSV em Python

Neste método, primeiro converteremos o JSON em um Pandas DataFrame e a partir daí converteremos em um arquivo CSV usando o método to_csv(). Podemos ler a string JSON usando a função json.loads() que é fornecida na biblioteca json em Python para converter JSON em DataFrame. Em seguida, passamos esse objeto JSON para a função json_normalize() que retornará um Pandas DataFrame contendo os dados necessários.

O trecho de código a seguir irá explicar como fazemos isso.

import pandas as pd
import json

data = """
{
"Results":
         [
         { "id": "1", "Name": "Jay" },
         { "id": "2", "Name": "Mark" },
         { "id": "3", "Name": "Jack" }
         ],
"status": ["ok"]
}
"""

info = json.loads(data)

df = pd.json_normalize(info["Results"])

df.to_csv("samplecsv.csv")

O conteúdo do arquivo CSV criado está abaixo.

,id,Name
0,1,Jay
1,2,Mark
2,3,Jack

Use o módulo csv para converter JSON em um arquivo CSV

Neste método, usaremos a biblioteca csv em Python que é usada para ler e escrever arquivos CSV. Primeiro, leremos os dados JSON como fizemos no método anterior. Abrimos um arquivo no modo de gravação e usamos o DictWriter() do módulo csv para criar um objeto que nos permite mapear e gravar dados JSON no arquivo. Os fieldnames são chaves que são identificadas e combinadas com os dados quando escrevemos linhas usando a função writerows().

O seguinte snippet de código mostrará como podemos implementar o método acima:

import csv
import json

data = """
{
"Results":
         [
         { "id": "1", "Name": "Jay" },
         { "id": "2", "Name": "Mark" },
         { "id": "3", "Name": "Jack" }
         ],
"status": ["ok"]
}
"""

info = json.loads(data)["Results"]

print(info[0].keys())

with open("samplecsv.csv", "w") as f:
    wr = csv.DictWriter(f, fieldnames=info[0].keys())
    wr.writeheader()
    wr.writerows(info)
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artigo relacionado - Python JSON

Artigo relacionado - Python CSV