- Gerenciamento automatizado de sessões
- Direcione para qualquer cidade em 195 países
- Sessões simultâneas ilimitadas
Como converter dados JSON em um arquivo CSV no Python?
Converter dados JSON para um arquivo CSV em Python é uma tarefa comum para manipulação e análise de dados. JSON (JavaScript Object Notation) é um formato popular para troca de dados, pois é fácil de ler e escrever para humanos e máquinas. CSV (Comma Separated Values) é um formato simples para armazenar dados tabulares, amplamente utilizado em análise e visualização de dados. Este guia mostrará como converter dados JSON em um arquivo CSV em Python usando vários métodos.
Por que converter JSON para CSV?
Antes de mergulhar no processo de conversão, é importante entender as razões por trás dele. JSON e CSV têm finalidades diferentes:
- JSON: ideal para estruturas de dados hierárquicas ou aninhadas. É comumente usado em aplicativos da web para troca de dados.
- CSV: mais adequado para dados tabulares planos. É amplamente utilizado em ferramentas de análise de dados e aplicativos de planilhas.
Compreender os pontos fortes e fracos do JSON em comparação com o CSV pode ajudá-lo a decidir o melhor formato para suas necessidades.
Método 1: Usando as bibliotecas csv e json
As bibliotecas csv e json integradas no Python oferecem uma maneira simples de converter dados JSON para CSV.
import json
import csv
# Dados JSON de amostra
json_data = '''
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Anna", "age": 22, "city": "London"},
{"name": "Mike", "age": 32, "city": "Chicago"}
]
'''
# Parsing dos dados JSON
data = json.loads(json_data)
# Abrir um arquivo CSV para gravação
with open('output.csv', 'w', newline='') as csv_file:
# Criar um objeto gravador CSV
csv_writer = csv.writer(csv_file)
# Escrever a linha do cabeçalho
header = data[0].keys()
csv_writer.writerow(header)
# Escrever as linhas de dados
for row in data:
csv_writer.writerow(row.values())
Este método lê dados JSON, realiza o Parsing em um dicionário Python e, em seguida, grava-os em um arquivo CSV.
Método 2: Usando pandas
Pandas é uma biblioteca poderosa para manipulação e análise de dados. Ela torna o processo de conversão fácil e eficiente.
import pandas as pd
# Dados JSON de amostra
json_data = '''
[
{"name": "John", "age": 30, "city": "New York"},
{"name": "Anna", "age": 22, "city": "London"},
{"name": "Mike", "age": 32, "city": "Chicago"}
]
'''
# Carregar os dados JSON em um DataFrame
df = pd.read_json(json_data)
# Gravar o DataFrame em um arquivo CSV
df.to_csv('output.csv', index=False)
O Pandas lida com a conversão com apenas algumas linhas de código, tornando-o a escolha preferida para tarefas complexas de manipulação de dados.
Método 3: Usando csv e json com JSON aninhado
O tratamento de estruturas JSON aninhadas requer o achatamento dos dados antes da conversão. A função json_normalize do pandas pode ser usada para esse fim.
import pandas as pd
from pandas import json_normalize
# Exemplo de dados JSON aninhados
nested_json_data = '''
[
{
"name": "John",
"age": 30,
"address": {"city": "New York", "zip": "10001"}
},
{
"name": "Anna",
"age": 22,
"address": {"city": "London", "zip": "SW1A"}
}
]
'''
# Carregar e normalizar os dados JSON
df = pd.json_normalize(json.loads(nested_json_data))
# Gravar o DataFrame em um arquivo CSV
df.to_csv('output.csv', index=False)
Essa abordagem é útil para converter estruturas JSON complexas em um formato CSV simples.
JSON vs. XML
Embora tanto JSON quanto XML sejam usados para intercâmbio de dados, JSON é geralmente mais fácil de ler e escrever. No entanto, XML pode ser mais poderoso devido à sua capacidade de definir esquemas complexos. Compreender as diferenças entre JSON e XML pode ajudá-lo a escolher o formato certo para o seu projeto.
Conclusão
Converter dados JSON para CSV em Python é um processo simples usando bibliotecas como csv, json e pandas. Cada método tem suas vantagens, e a escolha depende da complexidade dos seus dados e das suas necessidades específicas. Se você estiver interessado em informações sobre JSON vs. CSV, leia este artigo.
Registre-se hoje mesmo na Bright Data e explore produtos de Scraping de dados de primeira linha.