Como Converter JSON para CSV: Métodos, Ferramentas e Exemplos de Código
Como Converter JSON para CSV: Métodos Rápidos
Converter JSON para CSV é uma das tarefas de transformação de dados mais comuns. Seja para analisar dados de API no Excel, exportar registros de banco de dados para um relatório ou preparar dados de treinamento para machine learning, veja os métodos mais rápidos:
Método | Melhor Para | Nível de Habilidade |
|---|---|---|
Conversões rápidas e pontuais | Sem necessidade de codificação | |
Python (pandas) | Grandes datasets, automação | Python básico |
JavaScript (json2csv) | Projetos Node.js, pipelines de API | JavaScript básico |
Linha de comando (jq + miller) | Shell scripting, transformações rápidas | Familiaridade com CLI |
Excel Power Query | Usuários não técnicos | Sem necessidade de codificação |
Método 1: Conversor Online Gratuito (Sem Código)
A maneira mais rápida de converter JSON para CSV é com o Conversor JSON para CSV gratuito do Qodex:
Cole seus dados JSON ou faça upload de um arquivo .json
A ferramenta detecta automaticamente a estrutura e nivela objetos aninhados
Faça download do arquivo CSV resultante
Este método funciona melhor para conversões rápidas e pontuais de datasets pequenos a médios. Sem necessidade de conta, sem dados armazenados nos servidores.
Para a conversão inversa, use o Conversor CSV para JSON. Para uma comparação mais aprofundada desses formatos, veja nossa comparação CSV vs JSON.
Método 2: Python com pandas
A biblioteca pandas do Python é a escolha mais popular para conversão programática de JSON para CSV, especialmente para grandes datasets ou pipelines automatizados:
import pandas as pd import json# Array JSON simples e plano data = [ {"name": "Alice", "email": "alice@example.com", "age": 30}, {"name": "Bob", "email": "bob@example.com", "age": 25} ] df = pd.DataFrame(data) df.to_csv("output.csv", index=False)
# A partir de um arquivo JSON df = pd.read_json("data.json") df.to_csv("output.csv", index=False)
# JSON aninhado, nivele primeiro with open("nested.json") as f: data = json.load(f) df = pd.json_normalize(data) # Nivela objetos aninhados df.to_csv("output.csv", index=False)
Função principal: pd.json_normalize() lida com JSON aninhado nivelando-o em colunas com notação de ponto (por exemplo, address.city, address.zip). Isso é essencial para converter respostas de API do mundo real que raramente são planas.
Método 3: JavaScript com json2csv
Para projetos Node.js ou pipelines de dados construídos em JavaScript:
const { Parser } = require('json2csv');const data = [ { name: "Alice", email: "alice@example.com", age: 30 }, { name: "Bob", email: "bob@example.com", age: 25 } ];
// Conversão básica const parser = new Parser(); const csv = parser.parse(data); console.log(csv);
// Com dados aninhados, especifique o nivelamento const { Parser } = require('json2csv'); const opts = { fields: ['name', 'address.city', 'address.zip'], unwind: ['orders'], // Expande arrays em múltiplas linhas }; const parser = new Parser(opts); const csv = parser.parse(nestedData);
A biblioteca json2csv lida com a maioria das estruturas JSON comuns, incluindo objetos aninhados, arrays e tipos mistos. Instale com npm install json2csv.
Método 4: Linha de Comando
Para shell scripting e one-liners rápidos, combine jq (processador JSON) com ferramentas padrão:
# Usando jq para converter array JSON plano para CSV cat data.json | jq -r ' (.[0] | keys_unsorted) as $keys | ($keys | @csv), (.[] | [.[$keys[]]] | @csv) ' > output.csv# Usando miller (mlr), construído especificamente para conversão de formato mlr --json2csv cat data.json > output.csv
# Usando one-liner Python python3 -c "import pandas as pd; pd.read_json('data.json').to_csv('output.csv', index=False)"
Miller (mlr) é especialmente útil para conversão de formato de dados; instale com brew install miller (macOS) ou apt install miller (Ubuntu).
Lidando com JSON Aninhado
JSON do mundo real de endpoints de API raramente é plano. Veja como lidar com estruturas aninhadas comuns:
Objetos Aninhados - Colunas com Notação de Ponto
// JSON de entrada {"name": "Alice", "address": {"city": "NYC", "zip": "10001"}}
// CSV de saída name,address.city,address.zip Alice,NYC,10001
Arrays - Múltiplas Linhas ou Strings Delimitadas
// JSON de entrada {"name": "Alice", "tags": ["admin", "editor"]}// Opção A: Múltiplas linhas (unwind) name,tags Alice,admin Alice,editor
// Opção B: String delimitada name,tags Alice,"admin;editor"
Aninhamento Misto - Nivelar + Unwind
Para JSON profundamente aninhado, use uma abordagem em dois passos: primeiro nivele objetos com json_normalize(), depois aplique unwind nos arrays em linhas separadas. Isso preserva todos os dados enquanto cria uma estrutura tabular válida.
Entender as diferenças estruturais entre esses formatos ajuda você a escolher a abordagem de conversão certa. Veja nossa comparação CSV vs JSON para uma análise mais aprofundada das vantagens e desvantagens.
Perguntas Frequentes
Posso converter JSON aninhado para CSV?
Sim, mas JSON aninhado requer nivelamento. Objetos aninhados são tipicamente convertidos para nomes de coluna com notação de ponto (por exemplo, address.city), e arrays podem ser expandidos em múltiplas linhas ou unidos em strings delimitadas. O pandas.json_normalize() do Python e a biblioteca Node.js json2csv lidam com a maioria dos padrões de aninhamento automaticamente. Para conversões rápidas, o Conversor JSON para CSV do Qodex lida com estruturas aninhadas automaticamente.
Quais dados são perdidos ao converter JSON para CSV?
O CSV não consegue representar tipos de dados (tudo se torna texto), estruturas aninhadas (niveladas para notação de ponto ou múltiplas linhas), distinções entre null e string vazia, ou valores booleanos (tornam-se as strings "true"/"false"). Se você precisar preservar essas distinções, considere manter uma cópia JSON junto com o CSV, ou use um formato que suporte tipos como Parquet ou NDJSON.
Como converto um arquivo JSON grande para CSV?
Para arquivos grandes (100 MB ou mais), evite carregar o arquivo inteiro na memória. Use abordagens de streaming: a biblioteca ijson do Python para análise incremental, ou processe NDJSON (um objeto JSON por linha) com leitura linha por linha. Para datasets muito grandes, ferramentas como Apache Spark ou DuckDB podem converter JSON para CSV de forma eficiente com uso mínimo de memória.
Como converto respostas de API JSON para CSV?
A maioria das respostas de API retorna arrays JSON de objetos, que se mapeiam diretamente para linhas de CSV. Use a biblioteca requests do Python para buscar os dados e pandas para converter: pd.DataFrame(response.json()).to_csv('output.csv'). Para APIs paginadas, colete todas as páginas em uma lista antes de converter. Para fluxos de trabalho de testes de API, o Qodex.ai pode exportar resultados de testes diretamente para CSV.
Qual é o melhor conversor de JSON para CSV?
Para conversões rápidas sem código: Conversor JSON para CSV do Qodex (gratuito, sem necessidade de conta). Para conversão programática em Python: pandas com json_normalize(). Para JavaScript/Node.js: o pacote npm json2csv. Para linha de comando: miller (mlr --json2csv). Escolha com base no seu caso de uso: pontual versus automatizado, arquivos pequenos versus grandes, JSON plano versus aninhado.
Posso converter CSV de volta para JSON?
Sim. A conversão inversa é simples para dados planos; cada linha do CSV torna-se um objeto JSON com os cabeçalhos das colunas como chaves. Use o Conversor CSV para JSON do Qodex para conversões rápidas, ou pandas.read_csv('data.csv').to_json() em Python. Observe que a conversão de CSV para JSON sempre produz objetos planos; se você precisar de estruturas aninhadas, precisará escrever lógica de transformação personalizada.
Discover, Test, & Secure your APIs 10x Faster than before
Auto-discover every endpoint, generate functional & security tests (OWASP Top 10), auto-heal as code changes, and run in CI/CD - no code needed.
Related Blogs





