Español

Datos y hojas de cálculo · CSV Limpiador

Por qué las cadenas vacías, NULL y los campos faltantes no son lo mismo en CSV

· Por qué es importante

csv json formatos de datos

Celdas CSV vacías, un token NULL literal y una fila corta que llegan como diferentes entradas visibles pero salidas de cadena
Ilustración de vector original de ToolAcre

CSV no tiene forma de decir "sin valor"; solo tiene texto. Esta publicación explica en qué se diferencian los campos vacíos, las cadenas vacías entrecomilladas, las filas literales NULL y cortas, por qué los cargadores no están de acuerdo con ellos y cómo la conversión a JSON fuerza la pregunta.

La misma celda en blanco se vuelve NULL en un sistema y una cadena vacía en otro: por qué eso cambia las uniones, los recuentos y los promedios

Las celdas de origen que parecen en blanco pueden contener varios historiales, pero la salida JSON de ToolAcre las reduce deliberadamente a una sola representación. Un campo vacío, un campo vacío entre comillas y una fila corta rellenada por el analizador se convierten en la cadena vacía bajo una clave actual. No se infiere ningún nulo de la apariencia.

Esa coherencia es útil sólo cuando el consumidor lo sabe. La prueba de código específicamente para null no sustituirá "" por un valor predeterminado. Decida el contrato de valor faltante en el límite de recepción en lugar de asumir que el convertidor conservó las distinciones que la sintaxis CSV o su modelo de análisis elegido no retuvo.

En ToolAcre, una celda en blanco y una celda faltante rellenada se convierten en cadenas vacías a menos que un consumidor las reinterprete.

CSV puede contener dos delimitadores sin nada entre ellos, una cadena vacía citada explícitamente, texto literal como NULL o NA y una fila que termina antes del ancho del encabezado. ToolAcre analiza las dos primeras como cadenas vacías y deja los tokens literales intactos como texto normal.

Para una fila corta, emite una advertencia `RAGGED_ROW` y rellena las celdas finales ausentes con cadenas vacías. Para una fila larga, conserva celdas adicionales en la tabla, pero la conversión JSON no tiene una clave de encabezado para ellas y las omite. Esta asimetría es la razón por la cual la advertencia estructural requiere acciones antes de la conversión.

Cómo interpretan cada uno los cargadores comunes: los diferentes valores predeterminados en hojas de cálculo, bases de datos y bibliotecas de marcos de datos

Diferentes clientes de bases de datos y bibliotecas de análisis exponen sus propios tokens nulos configurables y políticas de campos vacíos. Este repositorio no puede establecer esos valores predeterminados, por lo que el artículo no afirma que todas las hojas de cálculo o cargadores estén de acuerdo. Documenta la única implementación cuya fuente y pruebas están disponibles.

Al entregar el archivo a otro sistema, lea la configuración de ese importador y cree accesorios para ``, `""`, NULL y una fila corta. Un contrato confiable se demuestra en el límite real. El folklore general sobre lo que normalmente significa "CSV" es demasiado débil para los valores faltantes.

Los valores predeterminados del cargador varían; este artículo documenta ToolAcre en lugar de generalizar el comportamiento de las hojas de cálculo o bases de datos

El texto NULL es especialmente peligroso porque puede ser contenido genuino o un centinela del remitente. ToolAcre no tiene una lista centinela configurada y, por lo tanto, la conserva como la cadena de cuatro caracteres "NULL". Lo mismo ocurre con NA, N/A, cero y cualquier otro token que un productor pueda usar.

No reemplace globalmente dichas cadenas sin una regla específica de campo. Una columna de notas podría contener legítimamente "NULL" y una columna de código podría usar NA. Resuelva el significado con documentación del productor o un esquema, luego transforme solo las columnas apropiadas bajo revisión.

JSON te hace decidir: nulo, cadena vacía y clave ausente son tres cosas diferentes una vez que se convierte el archivo

JSON distingue nulo, una cadena vacía y una propiedad ausente, pero ToolAcre elige claves presentes con valores de cadena para cada columna de encabezado. Las celdas faltantes o rellenas se convierten en "". El convertidor no produce JSON nulo y no omite una clave simplemente porque una celda está vacía.

Una celda sobrante es diferente: sin encabezado correspondiente, no hay clave para asignar, por lo que está ausente en los objetos generados. La advertencia de fila le indica que es posible que se pierda. Corrija el encabezado o el ancho de la fila antes de la descarga en lugar de leer la ausencia como una política nula significativa.

ToolAcre emite cadenas vacías y claves presentes, no claves nulas o ausentes

Utilice encabezados de identificación, nota, código y cuatro registros: `1,,A`, `2,"",NULL`, `3,hello` y `4,world,B,extra`. Las dos primeras notas se convierten en cuerdas vacías; El código de la fila dos permanece "NULL". La fila tres recibe el código "" después del relleno, mientras que la fila cuatro advierte que una celda adicional no tiene clave.

Los objetos resultantes llevan visiblemente las mismas tres claves para las columnas representadas. Este caso resuelto es más informativo que una captura de pantalla de celdas en blanco porque conecta las advertencias de análisis con la forma JSON. También muestra por qué los tokens literales requieren una decisión de dominio separada.

Lo que esto no cubre: imputación y reglas comerciales sobre lo que un valor faltante debe ser predeterminado

La imputación está fuera de la ruta. El convertidor no completa los precios faltantes, no copia valores anteriores ni infiere valores predeterminados de filas vecinas. Esos cambios dependen del significado comercial y deben ocurrir después de que un esquema distinga valores desconocidos, inaplicables e intencionalmente vacíos.

Tampoco conserva la distinción sintáctica entre un campo vacío sin comillas y `""`; ambos analizan la misma cadena de celdas. Si esa distinción es importante, CSV no la lleva a cabo en el modelo de tabla de este analizador. Elija una representación con un estado explícito o conserve la fuente sin procesar junto con los datos derivados.

Decida qué significa el espacio en blanco antes de cargar: cómo la conversión de CSV a JSON del limpiador ToolAcre CSV hace que la representación sea visible

Decida qué significa el espacio en blanco antes de cargar el JSON en el código escrito. ToolAcre proporciona una línea de base transparente: valores de cadena en todas partes, cadenas vacías para las celdas representadas que faltan, palabras centinela literales sin cambios y advertencias donde la forma de la fila excede las claves disponibles.

Inspeccione esas advertencias y documente cualquier coerción posterior. Un conversor no puede crear una semántica de valores faltantes únicamente a partir del texto, pero puede evitar ocultar sus propias opciones. Ese comportamiento predecible hace que el siguiente límite sea responsable de la política que en realidad está calificado para aplicar.