O que é CSV? Formato, Regras, Usos e Armadilhas Comuns
A API de Scraping sem desperdício pode retornar dados estruturados da web em CSV para planilhas, importação de banco de dados e fluxos de trabalho de análise.
TL;DR
- CSV armazena uma tabela como texto simples. Cada registro é normalmente uma linha, e um delimitador separa os campos dentro desse registro.
- CSV é uma família de dialetos. O RFC 4180 documenta uma base amplamente utilizada de vírgula e aspas duplas, mas arquivos reais variam em delimitador, codificação, quebras de linha, cabeçalhos e convenções nulas.
- Aspas protegem caracteres especiais. Um campo contendo uma vírgula, aspas ou quebra de linha deve ser incluído entre aspas duplas, e uma aspas dupla literal é representada por duas aspas duplas.
- CSV não carrega um esquema completo. Tipos, campos exigidos, datas, nulos, unidades e regras de identificadores devem vir de documentação, um esquema auxiliar ou do sistema receptor.
- Importações seguras inspecionam antes de converter. Detecte o dialeto, preserve o texto original, valide contagens de colunas e trate fórmulas de planilhas como uma preocupação de segurança.
O que é um arquivo CSV?
CSV significa valores separados por vírgula. Um arquivo CSV representa dados tabulares como texto: linhas representam registros, e separadores dividem cada registro em campos. A primeira linha frequentemente contém nomes de colunas, embora um cabeçalho seja opcional. A extensão do arquivo é geralmente .csv, e o tipo de mídia registrado é text/csv.
O formato familiar é intencionalmente simples. Uma exportação de cliente pode ter colunas para um identificador, nome, país e status da conta. Um banco de dados pode escrever resultados de consultas em CSV, uma planilha pode abrir o arquivo e outro sistema pode importar as mesmas linhas sem compartilhar um formato de pasta de trabalho proprietário.
O RFC 4180 documenta o formato CSV comum e o tipo de mídia text/csv. Ele descreve delimitadores de vírgula, limites de registro CRLF, um cabeçalho opcional e escape de aspas duplas. O documento é informativo, em vez de ser uma lei universal para cada arquivo chamado CSV. Muitas ferramentas aceitam ou produzem variações, então trocar um arquivo CSV ainda requer um acordo sobre seu dialeto.
Como funciona a sintaxe CSV
Um arquivo CSV mínimo pode conter um cabeçalho e três registros:
id,name,country,active
101,Ada,GB,true
102,Lin,SG,false
103,Sam,CA,true
Cada linha neste exemplo tem quatro campos. O cabeçalho fornece rótulos, mas não declara tipos. Um leitor pode inferir que id é um inteiro e active é um booleano, enquanto outro leitor pode preservar cada campo como texto. Ambas as interpretações são possíveis, a menos que o contrato de dados especifique uma.
Delimitadores
Uma vírgula é o delimitador canônico, mas ponto e vírgula, tabulações e pipes são comuns em exportações regionais e feeds específicos de aplicações. Locais com vírgula decimal muitas vezes usam um ponto e vírgula para evitar ambiguidades. Valores separados por tabulação costumam ser chamados de TSV, ainda que muitos diálogos de importação agrupem CSV e TSV sob um único fluxo de trabalho de “texto delimitado”.
O produtor deve declarar o delimitador. A adivinhação a partir da primeira linha pode falhar quando os valores contêm pontuação ou quando um arquivo de uma coluna não tem delimitador algum. Um pipeline receptor deve permitir uma configuração de dialeto explícita e relatar as configurações detectadas.
Aspas e Escape
Um campo que contém uma vírgula, uma aspas dupla ou um limite de registro precisa de aspas sob as regras comuns do RFC 4180. Aspas duplas dentro de um campo entre aspas são dobradas:
id,name,note
201,"Rivera, Ana","Asked for ""priority"" handling"
202,Chen,"First line
Second line"
O segundo registro mostra que um campo entre aspas pode conter uma quebra de linha. Um parser que divide o arquivo em linhas antes de aplicar as regras do CSV irá corromper esse registro. Use um analisador CSV que compreenda as aspas em vez de uma divisão de string genérica.
Cabeçalhos
Uma linha de cabeçalho melhora a legibilidade e permite que os consumidores mapeiem colunas pelo nome em vez da posição. No entanto, a sintaxe CSV não pode provar que um cabeçalho existe. Um sistema receptor precisa de configuração ou do header parâmetro de tipo de mídia. Os nomes de coluna devem ser exclusivos, estáveis e documentados. Cortar ou alterar a caixa dos cabeçalhos sem um contrato pode mesclar campos distintos.
O que o CSV não define
CSV descreve limites de campo, não significados de domínio. Ele não fornece uma maneira universal de declarar tipos de dados, chaves primárias, relacionamentos, unidades, fusos horários, codificação de caracteres ou se um campo vazio significa uma string vazia, um valor desconhecido ou um valor ausente.
O Modelo W3C para Dados Tabulares e Metadados na Web aborda esta lacuna descrevendo como arquivos tabulares podem ser emparelhados com metadados sobre colunas, tipos de dados, títulos e relacionamentos. As equipes não precisam adotar esse modelo completo, mas devem fornecer informações equivalentes em algum lugar durável.
Diferenças comuns de dialeto CSV
| Dimensão | Escolhas Comuns | Por que é Importante |
|---|---|---|
| Delimitador de campo | Vírgula, ponto e vírgula, tabulação, pipe | Uma escolha errada muda o número aparente de colunas |
| Caracter de citação | Aspas duplas, aspas simples, nenhuma | Controla se a pontuação e as quebras de linha permanecem dentro de um campo |
| Método de escape | Aspas duplicadas, convenção de barra invertida | Um desvio muda os caracteres de citação literais |
| Cabeçalho | Presente, ausente, múltiplas linhas descritivas | O primeiro registro pode ser confundido com dados ou vice-versa |
| Codificação | UTF-8, UTF-8 com BOM, codificações legadas | Um decodificador incorreto corrompe nomes e símbolos |
| Finalização de registro | CRLF, LF | A maioria dos analisadores modernos aceita ambos, mas sistemas rígidos podem não aceitar |
| Valor nulo | Campo vazio, texto sentinela, marcador específico do contrato | String vazia e valor ausente podem se tornar indistinguíveis |
Por que o CSV continua sendo útil
O CSV tem amplo suporte. Aplicações de planilhas, bancos de dados, ferramentas de linha de comando, dataframes, plataformas analíticas e sistemas de negócios podem ler ou escrever texto delimitado. Essa compatibilidade torna o CSV um formato de transferência confiável para uma tabela plana.
O CSV também é inspecionável. Um desenvolvedor pode abrir um pequeno arquivo em um editor de texto, e um analista de dados pode carregá-lo em uma planilha sem instalar um visualizador específico do domínio. Como a representação tem pouca sobrecarga estrutural, pode ser compacta para tabelas largas e regulares, especialmente após compressão.
O formato funciona bem para exportações somente de anexos e importações em lote, quando cada registro segue um esquema. É menos adequado quando um registro contém objetos aninhados, matrizes ou um conjunto variável de campos. Essas estruturas devem ser achatadas em colunas, divididas em arquivos relacionados ou codificadas dentro de uma célula usando outra convenção.
Casos de Uso Típicos de CSV
Transferências de Planilha
Equipes trocam inventário, campanha, finanças e tabelas operacionais com pessoas que precisam de ordenação, filtragem, fórmulas ou gráficos em uma interface familiar.
Importação e Exportação de Banco de Dados
Resultados de consultas relacionais se mapeiam naturalmente para linhas e colunas, desde que o contrato de exportação preserve identificadores, nulos, precisão e carimbos de data/hora.
Estágio Analítico
Conjuntos de dados pequenos e médios muitas vezes chegam como CSV antes que um pipeline os valide e os converta para armazenamento analítico tipado.
Distribuição de Dados Públicos
Agências e grupos de pesquisa publicam conjuntos de dados planos em CSV porque os destinatários podem processá-los com muitas linguagens e ferramentas de desktop.
Riscos de Segurança do CSV
Um arquivo CSV é dado, mas o software de planilha pode interpretar uma célula que começa com caracteres como um sinal de igual como uma fórmula. Se um valor não confiável se tornar uma fórmula, abrir a exportação pode acionar ações suportadas por esse ambiente de planilha. Esse problema é frequentemente chamado de injeção de CSV ou fórmula.
Orientação sobre injeção de CSV da OWASP explica por que aplicativos que exportam entrada não confiável devem levar em conta a interpretação de planilhas. Um produtor deve seguir a orientação de exportação segura atual da planilha de destino e não deve assumir que citar um campo neutraliza a semântica da fórmula. Um destinatário deve abrir arquivos desconhecidos em um ambiente controlado e inspecionar caracteres iniciais suspeitos antes de habilitar conteúdo ativo.
A ingestão de CSV também precisa de controles de recursos. Defina limites de tamanho de arquivo, tamanho de linha, contagem de colunas e comprimento de campo. Rejeite citação malformada com um local claro. Mantenha o arquivo original para fins de auditoria e evite reparar silenciosamente um registro danificado de maneira que desloque campos para as colunas erradas.
Como Importar CSV Confiavelmente
- Preserve os bytes originais. Mantenha o arquivo de origem inalterado para que problemas de codificação, citação e limites de linha possam ser reproduzidos.
- Defina ou detecte o dialeto. Prefira configurações fornecidas pelo produtor. Se a detecção for necessária, registre o resultado e permita a revisão antes de carregar dados de alto valor.
- Decodifique explicitamente. UTF-8 é uma configuração padrão sensata, mas uma marca de ordem de byte ou metadados de contrato podem indicar outra codificação.
- Analise com uma biblioteca CSV. Não divida por vírgulas ou quebras de linha porque campos citados podem conter ambos.
- Valide a estrutura primeiro. Verifique cabeçalhos, nomes de colunas duplicados, contagens de campos, colunas obrigatórias e tamanhos máximos antes da conversão de tipos.
- Converter tipos sob um esquema. Analise datas, decimais, booleanos e identificadores usando regras explícitas de localidade e precisão.
- Colocar registros inválidos em quarentena. Relatar o registro e a razão sem deixar que uma linha malformada desloque o restante do conjunto de dados.
CSV Comparado com Outros Formatos
CSV é melhor entendido como um formato de troca de tabela plana. JSON adiciona objetos aninhados, arrays, booleanos, números e nulos. NDJSON mantém um valor JSON independente por linha para streams e logs. Parquet armazena colunas tipadas em um layout binário construído para varreduras analíticas. Uma pasta de trabalho XLSX pode preservar fórmulas, estilos, planilhas e um comportamento de planilha mais rico.
Um pipeline prático pode usar vários formatos em diferentes fronteiras. CSV pode ser a entrega humana, JSON pode ser a resposta da API, e Parquet pode ser a camada de armazenamento analítico. A conversão é valiosa quando corresponde ao próximo consumidor; não deve apagar identificadores, semântica de nulos, precisão ou proveniência.
Como Criar Arquivos CSV Limpos
Comece com um contrato de coluna estável. Use cabeçalhos únicos, emita o mesmo número de campos em cada registro, coloque aspas nos campos de acordo com o dialeto selecionado e escreva uma codificação declarada. Mantenha os campos de identificador como texto quando zeros à esquerda importam. Use uma representação de data não ambígua acordada por ambas as partes e inclua informações de fuso horário para timestamps.
Não coloque JSON aninhado em uma célula a menos que o contrato diga explicitamente que a célula contém JSON e defina sua escape. Para relacionamentos um-para-muitos, separa registros relacionados em outro arquivo com uma chave compartilhada ou escolha um formato que suporte aninhamento. Adicione um manifesto quando uma entrega contém vários arquivos, esquemas, checksums ou partições.
Conclusão
CSV tem sucesso porque dá a tabelas planas uma representação textual pequena e amplamente suportada. Sua aparente simplicidade pode esconder escolhas importantes sobre delimitadores, aspas, cabeçalhos, codificação, nulos, tipos e comportamento de planilha. Um fluxo de trabalho CSV confiável combina um dialeto documentado com um esquema de dados, analisa com uma biblioteca dedicada, valida antes da conversão e preserva a entrada original. Com esses controles, o CSV continua a ser uma ponte prática entre dados da web, bancos de dados, ferramentas analíticas e usuários de negócios.
Pronto para Construir um Fluxo de Trabalho de Dados CSV?
Colete resultados estruturados da web com a API Scrapeless Scraping e entregue tabelas limpas aos sistemas e pessoas que precisam delas.
Inscreva-se hoje e ganhe $5 em crédito gratuito — sem necessidade de cartão de crédito.
Reivindique Seu Crédito de $5 →FAQ
O CSV sempre usa vírgulas?
Não, a vírgula é o separador canônico, mas arquivos delimitados por ponto e vírgula, tabulação e pipe são comuns. O produtor e consumidor devem concordar sobre o dialeto em vez de contar apenas com o nome do arquivo.
Um campo CSV pode conter uma vírgula ou quebra de linha?
Sim, as regras comuns permitem vírgulas e quebras de linha dentro de um campo entre aspas duplas. Uma aspa dupla literal dentro desse campo é representada por duas aspas duplas.
O CSV suporta tipos de dados?
O CSV em si não possui um sistema de tipos universal. A aplicação receptora ou um esquema separado decide se um campo é texto, um número, uma data, um booleano ou nulo.
O CSV é o mesmo que um arquivo do Excel?
Não, o CSV armazena uma tabela de texto simples e não preserva recursos de pasta de trabalho, como várias planilhas, fórmulas, estilos, gráficos ou tipos de células. Aplicativos de planilha podem abrir CSV, mas os formatos são diferentes.
Por que os zeros à esquerda desaparecem dos valores CSV?
Os zeros à esquerda geralmente desaparecem porque uma planilha ou importador inferiu que o campo era um número. Importe identificadores, como códigos postais e números de contas, como texto sob um esquema explícito.