Lee un CSV con comillas
Antes de indexar datos para un RAG hay que leerlos bien. Un split(',') se rompe con el primer nombre que lleva coma.
Escribe parseCSV(text). La primera fila es la cabecera; devuelve un array de objetos, uno por fila, con las columnas como claves y los valores como texto.
Soporta campos entre comillas dobles que contienen comas, comillas escapadas como "" dentro de un campo entre comillas, finales de línea \n y \r\n, y una línea vacía al final.
La variable SAMPLE contiene un pequeño catálogo de modelos.
Retos 0/4
- Lee filas sencillas con su cabecera
- Respeta comas dentro de comillas
- Convierte "" en una comilla
- Acepta \r\n y una línea final vacía
function parseCSV(text) {
// recorre el texto carácter a carácter y lleva la cuenta de si estás dentro de comillas
const [header, ...rows] = text.trim().split('\n').map((line) => line.split(','));
return rows.map((r) => Object.fromEntries(header.map((h, i) => [h, r[i]])));
}
console.log(parseCSV(SAMPLE));La consola aparece aquí (console.log).
Para profundizar: la referencia de RFC 4180 (en inglés) →
¿Esto en producción, con tus datos? Hablemos 15 minutos →