YAML / JSON / TOML Converter

Conversor de CSV para JSON: Transformador de Dados Tabulares

Converta dados CSV para array JSON de objetos. A primeira linha vira chaves. Lida com campos entre aspas, vírgulas em valores e células vazias.

100% no navegador. Seus dados nunca saem do seu computador.

Ferramentas Relacionadas

A Saída JSON

Converter o CSV de exemplo produz:

[
  {
    "name": "Alice Chen",
    "email": "alice@example.com",
    "role": "admin",
    "active": true
  },
  {
    "name": "Bob Martinez",
    "email": "bob@example.com",
    "role": "editor",
    "active": true
  },
  {
    "name": "Carol Williams",
    "email": "carol@example.com",
    "role": "viewer",
    "active": false
  }
]

Regras de Parsing CSV (RFC 4180)

Um CSV compatível com campos entre aspas e vírgulas embutidas:

id,description,tags
1,"Converts JSON, YAML, and CSV","data,tools"
2,"Supports ""quoted"" values","parsing"

Inferência de Tipos

Campos CSV são sempre strings no nível do formato. Um conversor que produz JSON tipado aplica inferência:

"42"       -> 42       (inteiro válido)
"3.14"     -> 3.14     (float válido)
"true"     -> true     (literal booleano)
"false"    -> false    (literal booleano)
""         -> null     (campo vazio)
"hello"    -> "hello"  (permanece string)

Issó produz resultados incorretos para:

Alternativas CLI

csvjson (parte do csvkit)

pip install csvkit
csvjson data.csv > data.json

Python standard library

import csv
import json

with open("data.csv") as f:
    reader = csv.DictReader(f)
    data = list(reader)

print(json.dumps(data, indent=2))

Casos Extremos

Caracteres BOM

Excel no Windows exporta arquivos CSV com BOM UTF-8. Se sua primeira chave é \ufefffirst_name em vez de first_name, remova o BOM antes de processar:

with open("data.csv", encoding="utf-8-sig") as f:
    reader = csv.DictReader(f)

Contagens de Coluna Inconsistentes

Quando uma linha tem menos colunas que o cabeçalho, as chaves ausentes recebem null ou são omitidas dependendo do parser.

Quebras de Linha Diferentes

Arquivos CSV do Windows usam CRLF (\r\n). Arquivos Unix/Mac usam LF (\n). Alguns parsers tratam o \r como parte do valor do último campo.