Dados e planilhas · CSV Limpador
Por que strings vazias, NULL e campos ausentes não são a mesma coisa em CSV
· Por que é importante
csv JSON formatos de dados
CSV não tem como dizer 'sem valor'; só tem texto. Esta postagem explica como os campos vazios, as strings vazias entre aspas, o NULL literal e as linhas curtas diferem, por que os carregadores discordam sobre eles e como a conversão para JSON força a questão.
A mesma célula em branco se torna NULL em um sistema e uma string vazia em outro — por que isso altera junções, contagens e médias
Células de origem que parecem vazias podem conter vários históricos, mas a saída JSON de ToolAcre os restringe deliberadamente a uma representação. Um campo vazio, um campo vazio entre aspas e uma linha curta preenchida pelo analisador tornam-se a string vazia sob uma chave atual. Nenhum nulo é inferido da aparência.
Essa consistência só é útil quando o consumidor sabe disso. O teste de código especificamente para null não substituirá um padrão para "". Decida o contrato de valor ausente no limite de recebimento em vez de assumir que o conversor preservou distinções que a sintaxe CSV ou seu modelo de análise escolhido não reteve.
Em ToolAcre, uma célula em branco e uma célula ausente preenchida tornam-se strings vazias, a menos que um consumidor as reinterprete
CSV pode conter dois delimitadores sem nada entre eles, uma string vazia explicitamente citada, texto literal como NULL ou NA e uma linha terminando antes da largura do cabeçalho. ToolAcre analisa os dois primeiros como strings vazias e deixa os tokens literais intocados como texto comum.
Para uma linha curta, ele emite um aviso `RAGGED_ROW` e preenche as células finais ausentes com strings vazias. Para uma linha longa, ele retém células extras na tabela, mas a conversão JSON não possui chave de cabeçalho para elas e as omite. Esta assimetria é a razão pela qual o aviso estrutural requer ação antes da conversão.
Como os carregadores comuns interpretam cada um — os diferentes padrões em planilhas, bancos de dados e bibliotecas de quadros de dados
Diferentes clientes de banco de dados e bibliotecas de análise expõem seus próprios tokens nulos configuráveis e políticas de campo vazio. Este repositório não pode estabelecer esses padrões, portanto o artigo não afirma que todas as planilhas ou carregadores concordam. Ele documenta a única implementação cuja fonte e testes estão disponíveis.
Ao entregar o arquivo para outro sistema, leia as configurações do importador e crie fixtures para ``, `""`, NULL e uma linha curta. Um contrato confiável é demonstrado na fronteira real. O folclore geral sobre o que “CSV normalmente significa” é muito fraco para valores ausentes.
Os padrões do carregador variam; este artigo documenta ToolAcre em vez de generalizar o comportamento da planilha ou do banco de dados
O texto NULL é especialmente perigoso porque pode ser conteúdo genuíno ou sentinela do remetente. ToolAcre não possui lista sentinela configurada e, portanto, a preserva como a sequência de quatro caracteres "NULL". O mesmo se aplica a NA, N/A, zero e qualquer outro token que um produtor possa usar.
Não substitua globalmente essas strings sem uma regra específica de campo. Uma coluna de notas poderia conter legitimamente “NULL” e uma coluna de código poderia usar NA. Resolva o significado com a documentação do produtor ou um esquema e, em seguida, transforme apenas as colunas apropriadas em revisão.
JSON faz você decidir - nulo, string vazia e chave ausente são três coisas diferentes depois que o arquivo é convertido
JSON distingue nulo, uma string vazia e uma propriedade ausente, mas ToolAcre escolhe chaves presentes com valores de string para cada coluna de cabeçalho. Células ausentes ou preenchidas tornam-se "". O conversor não produz JSON nulo e não omite uma chave apenas porque uma célula está vazia.
Uma célula excedente é diferente: sem cabeçalho correspondente, não há chave para atribuir, portanto está ausente dos objetos gerados. O aviso de linha informa que a perda é possível. Corrija o cabeçalho ou a largura da linha antes do download, em vez de ler a ausência como uma política nula significativa.
ToolAcre emite strings vazias e chaves presentes, não chaves nulas ou ausentes
Use cabeçalhos id, nota, código e quatro registros: `1,,A`, `2,"",NULL`, `3,hello` e `4,world,B,extra`. As duas primeiras notas tornam-se cordas vazias; o código na linha dois permanece "NULL". A linha três recebe o código "" após o preenchimento, enquanto a linha quatro avisa que uma célula extra não possui chave.
Os objetos resultantes carregam visivelmente as mesmas três chaves para as colunas representadas. Este caso resolvido é mais informativo do que uma captura de tela de células em branco porque conecta avisos de análise ao formato JSON. Também mostra por que os tokens literais exigem uma decisão de domínio separada.
O que isso não cobre - imputação e regras de negócios para o valor padrão de um valor ausente
A imputação está fora da rota. O conversor não preenche preços ausentes, não copia valores anteriores nem infere padrões de linhas vizinhas. Essas mudanças dependem do significado do negócio e devem ocorrer depois que um esquema distingue valores desconhecidos, inaplicáveis e intencionalmente vazios.
Também não preserva a distinção sintática entre um campo vazio sem aspas e `""`; ambos analisam para a mesma sequência de células. Se essa distinção for importante, CSV não a está transportando através do modelo de tabela deste analisador. Escolha uma representação com um estado explícito ou preserve a fonte bruta junto com os dados derivados.
Decida o que significa espaço em branco antes de carregar - como a conversão ToolAcre CSV Cleaner CSV-to-JSON torna a representação visível
Decida o que significa espaço em branco antes de carregar JSON no código digitado. ToolAcre fornece uma linha de base transparente: valores de string em todos os lugares, strings vazias para células representadas ausentes, palavras sentinela literais inalteradas e avisos onde o formato da linha excede as chaves disponíveis.
Inspecione esses avisos e documente qualquer coerção posterior. Um conversor não pode criar semântica de valores ausentes apenas a partir do texto, mas pode evitar ocultar suas próprias escolhas. Esse comportamento previsível torna o próximo limite responsável pela política que está realmente qualificado para aplicar.