Abre o pega un archivo CSV y cada fila se convierte en un elemento de una lista YAML, con los encabezados como claves. De forma predeterminada todos los valores se quedan como texto, y los que un analizador YAML interpretaría de otra manera (NO, yes, 0150, 2024-03-01, null) van entre comillas para que se carguen exactamente como están escritos. La conversión se hace en tu navegador y el archivo nunca se sube.
Cómo convertir CSV a YAML
- Pulsa Abrir archivo, suelta un archivo
.csv,.tsvo.txtsobre la herramienta o elige Pegar. Si las claves no se ven bien, revisa el delimitador y la codificación en Configuración de importación. - Elige los Tipos de valor y cómo se escriben las Celdas vacías. La pestaña YAML muestra exactamente el texto que tendrá la descarga.
- Elige la Sangría y pulsa Copiar o «Descargar YAML».
El resultado es una secuencia de nivel superior (elementos - key: value), la forma habitual de los fixtures, los datos de carga inicial y los archivos de datos de sitios estáticos. Si lo que necesitas es JSON, CSV a JSON tiene las mismas opciones de tipos.
Qué hace cada opción
| Mantener todos los valores como texto | Es la opción predeterminada. Cada valor es una cadena YAML; solo se añaden comillas donde un escalar sin comillas se leería como otra cosa. |
|---|---|
| Detectar números y true/false | Una columna pasa a números YAML solo si todos sus valores no vacíos son números simples, sin ceros a la izquierda y con 15 cifras significativas como máximo; las columnas de true/false (en mayúsculas o minúsculas) pasan a booleanos. yes/no y las fechas siguen siendo cadenas entre comillas. Los números se escriben en forma canónica, así que 1.50 se convierte en 1.5. |
| Celdas vacías | null (predeterminado) escribe key: null; Texto vacío "" escribe key: ""; Omitir la clave quita esa clave de la fila. |
| Sangría | 2 espacios (predeterminado) o 4 espacios para las claves de cada elemento de la lista. |
Cuándo se ponen comillas a los valores ambiguos
La salida está pensada para leerse igual en analizadores YAML 1.2 y en los antiguos de YAML 1.1, como PyYAML, que tratan más palabras como booleanos y números.
- Códigos de país y respuestas:
NO,yes,off,yyonvan entre comillas, así el código de Noruega no se carga comofalse. Esto vale también para las claves ("on": x). - Ceros a la izquierda:
0150y08001van entre comillas; sin ellas, YAML 1.1 los lee como números octales o decimales y se pierde el cero. - Fechas y números en modo texto:
2019-04-01y12van entre comillas para que no se carguen como marca de tiempo ni como entero. - Texto que parece nulo: una celda con
nullo~va entre comillas, así sigue siendo el texto que escribiste y no se confunde con una celda vacía. - Los saltos de línea dentro de un valor se convierten en un bloque literal
|-, y un:o un#dentro del texto obliga a usar comillas. Las líneas largas nunca se pliegan. - Los encabezados se usan como claves tal como están escritos, con espacios y alfabetos no latinos incluidos. Un encabezado en blanco pasa a ser
Column 3y uno repetido,name (2).
Solución de problemas
- Con Detectar números y true/false, una columna numérica sigue entre comillas: al menos un valor no es un número simple, por ejemplo
1,5,12 kgo007. Búscalo en el visor de CSV. - Una columna de sí/no no se ha convertido en booleanos: solo se convierten
trueyfalse, porqueyes,noyonsolo son booleanos en YAML 1.1. Si necesitas booleanos, sustitúyelos antes en el CSV con el Editor de CSV. - Las claves tienen caracteres raros como é: el archivo no está en UTF-8. Elige su codificación en la configuración de importación.
- Todo queda bajo una sola clave: el delimitador se detectó mal. Indícalo en la configuración de importación.
Límites y privacidad
Los archivos de hasta 25 MB, 100 000 filas o 2 millones de celdas se abren con vista previa en directo de las primeras 200 filas. Los más grandes se convierten leyéndolos por partes (en streaming): el archivo se lee dos veces (una para medir las columnas y sus tipos, otra para escribir), un aviso indica que la descarga incluye el archivo completo y no se ofrece Copiar. Cada archivo de salida tiene un máximo de 4 GB.
La conversión se ejecuta en un proceso en segundo plano dentro de esta pestaña, así que la página sigue respondiendo y Cancelar la detiene. El CSV nunca se envía a un servidor.
Ejemplo
Una lista de clientes con códigos de país, códigos postales con ceros a la izquierda, indicadores yes/no, fechas y celdas vacías, convertida con la configuración predeterminada (todo como texto y celdas vacías como null). Con Detectar números y true/false solo cambia orders, que pasa a 12, 3 y 7.
country,code,postcode,vat_registered,since,orders Norway,NO,0150,yes,2019-04-01,12 Spain,ES,08001,no,2021-11-15,3 United States,US,02134,,,7
- country: Norway code: "NO" postcode: "0150" vat_registered: "yes" since: "2019-04-01" orders: "12" - country: Spain code: ES postcode: "08001" vat_registered: "no" since: "2021-11-15" orders: "3" - country: United States code: US postcode: "02134" vat_registered: null since: null orders: "7"
Preguntas frecuentes
¿Por qué `NO` aparece entre comillas?
En YAML 1.1, NO, no, off y n sin comillas significan falso. Las comillas hacen que el código de país de Noruega, o cualquier respuesta escrita como no, se mantenga como texto en todos los analizadores.
¿Puedo obtener un único mapeo indexado por un ID en lugar de una lista?
No. Cada fila del CSV se escribe como un elemento de la lista, en el orden del archivo. Aquí no hay salida indexada por clave.
¿El resultado es YAML 1.2 válido?
Sí. Las comillas adicionales que necesita YAML 1.1 siguen siendo YAML 1.2 válido; solo hacen explícito que esos valores ya eran cadenas.