Convertir CSV a JSON sin subir los datos

Guía práctica · Windows 10 y Windows 11

Alguien te pasa un CSV y lo necesitas en JSON para cargarlo en una aplicación, alimentar una API o hacer una prueba. Excel no lo hace. El primer resultado de Google es un conversor online que te pide que arrastres el archivo, y ahí es donde conviene parar un segundo.

Qué suele haber dentro de un CSV: listas de clientes, pedidos, nóminas, direcciones de correo, historiales médicos, inventarios de precios. Subir ese archivo a un servicio gratuito es entregárselo a un tercero. Si en tu empresa hay cualquier obligación de protección de datos, esa subida es exactamente lo que no puedes hacer, por rápida que sea.

Hay tres maneras de convertirlo sin que el archivo salga de tu equipo.

1. PowerShell, que ya tienes instalado

Dos comandos encadenados y ya está:

Import-Csv datos.csv | ConvertTo-Json | Out-File datos.json -Encoding utf8

Y en el sentido contrario:

Get-Content datos.json | ConvertFrom-Json | Export-Csv datos.csv -NoTypeInformation -Encoding utf8

Si tu CSV usa punto y coma como separador, que es lo normal en los archivos exportados desde Excel en España, añade el delimitador:

Import-Csv datos.csv -Delimiter ';' | ConvertTo-Json | Out-File datos.json -Encoding utf8

Lo que no hace: con archivos anidados o muy grandes se queda corto, y por defecto ConvertTo-Json solo baja dos niveles de profundidad (se amplía con -Depth 10). Tampoco te avisa si el CSV venía mal formado: te devuelve un JSON con los campos descolocados y tú no te enteras hasta más adelante.

2. Python, si ya lo tienes

Tres líneas, y te da control total sobre los tipos y la codificación:

import csv, json; json.dump(list(csv.DictReader(open('datos.csv', encoding='utf-8-sig'))), open('datos.json','w',encoding='utf-8'), ensure_ascii=False, indent=2)

Ese utf-8-sig no es un detalle menor: se come la marca invisible que Excel pone al principio de los archivos y que, si no la quitas, convierte el nombre de tu primera columna en algo como Nombre.

Lo que no hace: requiere tener Python instalado, que no viene con Windows.

3. Una herramienta local, para varios archivos

Si son muchos archivos, o si quieres además renombrarlos de paso, TandaFiles convierte entre CSV, TSV, JSON, TXT y Markdown en el navegador, sin subir nada:

  1. Abrir carpeta o Añadir archivos.
  2. En Conversión de formato, marca convertir y elige JSON.
  3. Aplica, y te devuelve los archivos convertidos.

Respeta las comillas y detecta el separador, que es justo donde fallan las conversiones caseras. Y como todo ocurre con el procesador de tu propia máquina, el archivo de clientes se queda donde está.

Los tres detalles que rompen una conversión

El separador. «CSV» significa valores separados por comas, pero Excel en configuración regional española exporta con punto y coma, porque la coma la usa para los decimales. Si abres el archivo con el separador equivocado, te queda todo en una sola columna.

Las comillas. Un campo que contiene una coma se escribe entre comillas: "García, Ana". Si el conversor no entiende las comillas, parte ese campo en dos y descoloca toda la fila a partir de ahí. Es el fallo más traicionero, porque el archivo resultante parece correcto hasta que buscas un dato concreto.

La codificación. Si al abrir el JSON ves José donde debería poner José, el archivo se leyó como Windows-1252 y se escribió como UTF-8, o al revés. Por eso en los comandos de arriba aparece siempre el -Encoding utf8.

Cuál usar

Probar TandaFiles gratis en el navegador