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.
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
}
]
\r\n), mas a maioria dos parsers também aceita LF (\n)"")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"
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)
Isso produz resultados incorretos para:
07302 vira 7302)1e5 virando 100000)pip install csvkit
csvjson data.csv > data.json
import csv
import json
with open("data.csv") as f:
reader = csv.DictReader(f)
data = list(reader)
print(json.dumps(data, indent=2))
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)
Quando uma linha tem menos colunas que o cabeçalho, as chaves ausentes recebem null ou são omitidas dependendo do parser.
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.
Nothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.