¿Qué es CSV? Formato, reglas, usos y errores comunes

¿Qué es CSV? Formato, reglas, usos y errores comunes

La API de Scraping sin scrapear puede devolver datos web estructurados en CSV para hojas de cálculo, importaciones de bases de datos y flujos de trabajo analíticos.

Resumen

  • CSV almacena una tabla como texto sin formato. Cada registro es normalmente una línea y un delimitador separa los campos dentro de ese registro.
  • CSV es una familia de dialectos. RFC 4180 documenta una línea base ampliamente utilizada de comas y comillas dobles, pero los archivos reales varían en delimitador, codificación, finales de línea, encabezados y convenciones nulas.
  • Las comillas protegen caracteres especiales. Un campo que contenga una coma, comilla o salto de línea debe estar encerrado entre comillas dobles, y una comilla doble literal se representa con dos comillas dobles.
  • CSV no lleva un esquema completo. Los tipos, campos requeridos, fechas, valores nulos, unidades y reglas de identificadores deben provenir de la documentación, un esquema adjunto o el sistema receptor.
  • Las importaciones seguras inspeccionan antes de convertir. Detecta el dialecto, preserva el texto original, valida el conteo de columnas y trata las fórmulas de hoja de cálculo como una preocupación de seguridad.

¿Qué es un archivo CSV?

CSV significa valores separados por comas. Un archivo CSV representa datos tabulares como texto: las líneas representan registros y los separadores dividen cada registro en campos. La primera línea suele contener nombres de columnas, aunque un encabezado es opcional. La extensión del archivo es generalmente .csv, y el tipo de medio registrado es text/csv.

El formato familiar es intencionalmente simple. Una exportación de clientes podría tener columnas para un identificador, nombre, país y estado de cuenta. Una base de datos puede escribir resultados de consultas en CSV, una hoja de cálculo puede abrir el archivo, y otro sistema puede importar las mismas filas sin compartir un formato de libro de trabajo propietario.

RFC 4180 documenta el formato CSV común y el tipo de medio text/csv. Describe delimitadores de coma, límites de registros CRLF, un encabezado opcional y escape de comillas dobles. El documento es informativo más que una ley universal para cada archivo llamado CSV. Muchas herramientas aceptan o producen variaciones, por lo que intercambiar un archivo CSV todavía requiere acuerdo sobre su dialecto.

Cómo funciona la sintaxis CSV

Un archivo CSV mínimo puede contener un encabezado y tres registros:

id,name,country,active
101,Ada,GB,true
102,Lin,SG,false
103,Sam,CA,true

Cada fila en este ejemplo tiene cuatro campos. El encabezado suministra etiquetas pero no declara tipos. Un lector puede inferir que id es un entero y active es un booleano, mientras que otro lector puede preservar cada campo como texto. Ambas interpretaciones son posibles a menos que el contrato de datos especifique una.

Delimitadores

Una coma es el delimitador canónico, pero los puntos y comas, tabulaciones y tuberías son comunes en exportaciones regionales y flujos específicos de aplicaciones. Los locales con coma decimal a menudo usan un punto y coma para evitar ambigüedades. Los valores separados por tabulación suelen llamarse TSV, sin embargo, muchos diálogos de importación agrupan CSV y TSV bajo un flujo de trabajo de “texto delimitado”.

El productor debe indicar el delimitador. Adivinar a partir de la primera línea puede fallar cuando los valores contienen puntuación o cuando un archivo de una columna no tiene delimitador en absoluto. Un pipeline receptor debe permitir una configuración de dialecto explícita e informar los ajustes detectados.

Comillas y Escape

Un campo que contenga una coma, una comilla doble o un límite de registro necesita comillas bajo las reglas comunes de RFC 4180. Las comillas dobles dentro de un campo citado se duplican:

id,name,note
201,"Rivera, Ana","Asked for ""priority"" handling"
202,Chen,"First line
Second line"

El segundo registro muestra que un campo citado puede contener un salto de línea. Un analizador que divida el archivo en líneas antes de aplicar las reglas CSV corromperá ese registro. Utiliza un analizador CSV que entienda el citación en lugar de un simple split de cadena genérico.

Encabezados

Una fila de encabezado mejora la legibilidad y permite que los consumidores mapeen columnas por nombre en lugar de por posición. Aun así, la sintaxis CSV no puede probar que existe un encabezado. Un sistema receptor necesita configuración o el header parámetro tipo de medio. Los nombres de las columnas deben ser únicos, estables y documentados. Recortar o cambiar el caso de los encabezados sin un contrato puede fusionar campos distintos.

Lo que CSV no define

CSV describe los límites de los campos, no el significado del dominio. No proporciona una manera universal de declarar tipos de datos, claves primarias, relaciones, unidades, zonas horarias, codificación de caracteres, o si un campo vacío significa una cadena vacía, un valor desconocido o un valor faltante.

El Modelo W3C para Datos Tabulares y Metadatos en la Web aborda esta brecha describiendo cómo los archivos tabulares pueden emparejarse con metadatos sobre columnas, tipos de datos, títulos y relaciones. Los equipos no tienen que adoptar ese modelo completo, pero deben proporcionar información equivalente en algún lugar duradero.

Diferencias comunes de dialecto CSV

DimensiónOpciones comunesPor qué importa
Delimitador de campoComa, punto y coma, tabulación, tuberíaUna elección incorrecta cambia el número aparente de columnas
Caracter de citaComillas dobles, comillas simples, ningunaControla si la puntuación y los saltos de línea permanecen dentro de un campo
Método de escapeConvención de comillas dobles y barra invertidaUn desajuste cambia los caracteres literales de cita
EncabezadoPresente, ausente, múltiples líneas descriptivasEl primer registro puede ser confundido con datos o viceversa
CodificaciónUTF-8, UTF-8 con BOM, codificaciones heredadasUn decodificador incorrecto corrompe nombres y símbolos
Fin de registroCRLF, LFLa mayoría de los analizadores modernos aceptan ambos, pero los sistemas estrictos pueden no hacerlo
Valor nuloCampo vacío, texto centinela, marcador específico del contratoLa cadena vacía y el valor ausente pueden volverse indistinguibles

Por qué CSV sigue siendo útil

CSV tiene un amplio apoyo. Aplicaciones de hojas de cálculo, bases de datos, herramientas de línea de comandos, dataframes, plataformas de análisis y sistemas comerciales pueden leer o escribir texto delimitado. Esa compatibilidad hace que CSV sea un formato de entrega fiable para una tabla plana.

CSV también es inspeccionable. Un desarrollador puede abrir un archivo pequeño en un editor de texto, y un analista de datos puede cargarlo en una hoja de cálculo sin instalar un visor específico del dominio. Debido a que la representación tiene poco sobrecarga estructural, puede ser compacta para tablas anchas y regulares, especialmente después de la compresión.

El formato funciona bien para exportaciones solo de anexos e importaciones por lotes cuando cada registro sigue un esquema. Es menos adecuado cuando un registro contiene objetos anidados, matrices o un conjunto variable de campos. Esa estructuras deben ser aplanadas en columnas, divididas en archivos relacionados, o codificadas dentro de una celda utilizando otra convención.

Casos de uso típicos de CSV

Entregas de hojas de cálculo

Los equipos intercambian tablas de inventario, campañas, finanzas y operaciones con personas que necesitan ordenación, filtrado, fórmulas o gráficos en una interfaz conocida.

Importación y exportación de bases de datos

Los resultados de consultas relacionales se mapean naturalmente a filas y columnas, siempre que el contrato de exportación preserve identificadores, nulos, precisión y marcas de tiempo.

Etapa de análisis

Conjuntos de datos pequeños y medianos a menudo llegan como CSV antes de que un pipeline los valide y los convierta a almacenamiento analítico tipado.

Distribución de datos públicos

Agencias y grupos de investigación publican conjuntos de datos planos en CSV porque los destinatarios pueden procesarlos con muchos lenguajes y herramientas de escritorio.

Riesgos de seguridad de CSV

Un archivo CSV es datos, pero el software de hoja de cálculo puede interpretar una celda que comienza con caracteres como un signo igual como una fórmula. Si un valor no confiable se convierte en una fórmula, abrir la exportación puede activar acciones soportadas por ese entorno de hoja de cálculo. Este problema se llama a menudo inyección de CSV o de fórmula.

Guía de inyección de CSV de OWASP explica por qué las aplicaciones que exportan entradas no confiables deben tener en cuenta la interpretación de hojas de cálculo. Un productor debe seguir las pautas actuales de exportación segura de la hoja de cálculo de destino y no debe asumir que citar un campo neutraliza la semántica de la fórmula. Un receptor debe abrir archivos desconocidos en un entorno controlado e inspeccionar los caracteres iniciales sospechosos antes de habilitar contenido activo.

La ingestión de CSV también necesita controles de recursos. Establecer límites de tamaño de archivo, tamaño de fila, recuento de columnas y longitud de campo. Rechazar citas mal formadas con una ubicación clara. Mantener el archivo original para fines de auditoría y evitar reparar silenciosamente un registro dañado de una manera que desplace campos a las columnas equivocadas.

Cómo importar CSV de manera confiable

  1. Preservar los bytes originales. Mantener el archivo fuente sin cambios para que los problemas de codificación, cita y límite de fila se puedan reproducir.
  2. Establecer o detectar el dialecto. Preferir configuraciones suministradas por el productor. Si la detección es necesaria, registrar el resultado y permitir revisión antes de cargar datos de alto valor.
  3. Decodificar explícitamente. UTF-8 es un intercambio predeterminado sensato, pero una marca de orden de bytes o metadatos de contrato puede indicar otra codificación.
  4. Analizar con una biblioteca CSV. No dividir en comas o saltos de línea porque los campos entre comillas pueden contener ambos.
  5. Validar la forma primero. Verificar encabezados, nombres de columnas duplicadas, recuentos de campos, columnas requeridas y tamaños máximos antes de la conversión de tipo.
  6. Convertir tipos bajo un esquema. Analizar fechas, decimales, booleanos e identificadores utilizando reglas de localidad y precisión explícitas.
  7. Poner en cuarentena registros inválidos. Informe el registro y la razón sin dejar que una fila mal formada desplace el resto del conjunto de datos.

CSV comparado con otros formatos

CSV se entiende mejor como un formato de intercambio de tabla plana. JSON añade objetos anidados, arreglos, booleanos, números y null. NDJSON mantiene un valor JSON independiente por línea para flujos y registros. Parquet almacena columnas tipadas en un formato binario construido para análisis. Un libro de trabajo XLSX puede conservar fórmulas, estilos, hojas de cálculo y un comportamiento de hoja de cálculo más rico.

Un pipeline práctico puede utilizar varios formatos en diferentes fronteras. CSV puede ser la transferencia manual, JSON puede ser la respuesta de la API, y Parquet puede ser la capa de almacenamiento analítico. La conversión es valiosa cuando coincide con el siguiente consumidor; no debe eliminar identificadores, semántica de null, precisión ni procedencia.

Cómo crear archivos CSV limpios

Comience con un contrato de columna estable. Use encabezados únicos, emita el mismo número de campos en cada registro, coloque comillas en los campos según el dialecto seleccionado, y escriba una codificación declarada. Mantenga los campos identificadores como texto cuando los ceros a la izquierda importen. Use una representación de fecha inequívoca acordada por ambas partes e incluya información de zona horaria para las marcas de tiempo.

No coloque JSON anidado en una celda a menos que el contrato diga explícitamente que la celda contiene JSON y defina su escape. Para relaciones de uno a muchos, separe los registros relacionados en otro archivo con una clave compartida o elija un formato que soporte anidamiento. Agregue un manifiesto cuando una entrega contenga múltiples archivos, esquemas, sumas de verificación o particiones.

Conclusión

CSV tiene éxito porque le da a las tablas planas una representación de texto pequeña y ampliamente compatible. Su aparente simplicidad puede ocultar elecciones importantes sobre delimitadores, comillas, encabezados, codificación, nulls, tipos y comportamiento de hojas de cálculo. Un flujo de trabajo CSV confiable empareja un dialecto documentado con un esquema de datos, analiza con una biblioteca dedicada, valida antes de la conversión y preserva la entrada original. Con esos controles, CSV sigue siendo un puente práctico entre datos web, bases de datos, herramientas de análisis y usuarios de negocios.

¿Listo para construir un flujo de trabajo de datos CSV?

Recopile resultados estructurados de la web con Scrapeless Scraping API y entregue tablas limpias a los sistemas y personas que las necesitan.

Inscríbase hoy y obtenga $5 en crédito gratissin necesidad de tarjeta de crédito.

Reclame su crédito de $5 →

FAQ

¿Siempre usa CSV comas?

No, la coma es el separador canónico, pero los archivos delimitados por punto y coma, tabulación y tubería son comunes. El productor y el consumidor deben acordar el dialecto en lugar de confiar solo en el nombre del archivo.

¿Puede un campo CSV contener una coma o un salto de línea?

Sí, las reglas comunes permiten comas y saltos de línea dentro de un campo entre comillas dobles. Una comilla doble literal dentro de ese campo se representa con dos comillas dobles.

¿CSV soporta tipos de datos?

CSV en sí mismo no lleva un sistema de tipos universal. La aplicación receptora o un esquema separado decide si un campo es texto, un número, una fecha, un booleano o null.

¿Es CSV lo mismo que un archivo de Excel?

No, CSV almacena una tabla de texto plano y no preserva características del libro de trabajo como múltiples hojas, fórmulas, estilos, gráficos, o tipos de celdas. Las aplicaciones de hojas de cálculo pueden abrir CSV, pero los formatos son diferentes.

¿Por qué desaparecen los ceros a la izquierda de los valores CSV?

Los ceros a la izquierda generalmente desaparecen porque una hoja de cálculo o importador inferió el campo como un número. Importe identificadores como códigos postales y números de cuenta como texto bajo un esquema explícito.

Referencias