CSV a JSON o XMLDesarrollo y personalización

Un script de Python que convierte sus archivos CSV en JSON o XML con la estructura exacta que espera su sistema

Suele estar listo en 15 minutosCambios incluidosControl de calidad
Paquetes
Protección de pagoDetalles
  • Los cambios dentro del paquete son gratuitos.
  • Si no responde en los 3 días siguientes a la entrega, el trabajo se acepta automáticamente.

El dinero queda reservado al pagar y solo se libera cuando usted acepta el trabajo.

Un script de Python que convierte sus archivos CSV en JSON o XML con la estructura exacta que espera su sistema

Ejemplo de resultado

Ejemplo del paquete Estándar

Unir los archivos de ventas mensuales de 9 tiendas en un único informe de Excel

Cómo se ejecuta

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Carpeta: sales/2026-10, 9 archivos encontrados
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 filas
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 filas
2026-11-02 09:14:04 WARN  shop-07.csv: 3 filas sin precio omitidas (líneas 88, 412, 913)
2026-11-02 09:14:05 INFO  Listo: 10.412 filas -> report-2026-10.xlsx (hojas “Ventas” y “Totales”)

Configuración, no código

Los nombres de columna de cada tienda están en settings.ini, así que una tienda nueva o una columna renombrada es una línea ahí:

[columns]
date = Fecha, Fecha de venta, Día
product = Producto, Artículo, Nombre
quantity = Cant., Cantidad, Uds.
price = Precio, Precio unitario

Una parte del código

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lee el archivo de una tienda y le da los nombres de columna del informe."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: no hay columna para '{name}' (se buscó {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Archivos: un archivo ZIP con merge_sales.py (310 líneas), settings.ini, requirements.txt y un README sobre cómo instalar Python, ejecutar el script y qué significa cada mensaje del registro. El cliente lo ejecuta en su propio ordenador.

Cliente: una pequeña cadena de 9 papelerías; cada tienda envía sus ventas del mes en un archivo CSV o Excel, con nombres de columna ligeramente distintos. Tarea: un único script que lea todos los archivos de una carpeta, dé a las columnas un mismo formato y genere un solo informe de Excel con todas las ventas y una hoja de totales por tienda.

El cliente y todos los datos son ficticios.

Acerca de este servicio

Muchos sistemas solo aceptan datos en JSON o XML: una importación a una tienda o un CRM, una carga para un socio, un feed para una app. Este script de Python lee su exportación CSV y escribe el archivo con la estructura que necesita: los nombres de campo, qué campos van dentro de otros, números y fechas con el tipo correcto, y la codificación. En Premium también puede agrupar filas en un registro, como un pedido con todos sus artículos. Envíenos unas filas del CSV y un ejemplo o descripción del JSON o XML que espera la otra parte (su documentación o un archivo de muestra). El script lo ejecuta usted en su ordenador. Convierte los datos que le da: no sube el resultado a ningún sitio ni lo comprueba con el otro sistema.

Qué incluye

  • Qué recibeUn archivo ZIP con el script de Python, un README con instrucciones paso a paso y, desde Estándar, un archivo de configuración con la correspondencia entre columnas y campos; el código también se muestra en la página del pedido.
  • JSON o XMLO los dos a la vez a partir de un CSV
  • Su estructuraNombres de campo y anidamiento como en su muestra o documentación
  • Tipos correctosNúmeros, verdadero o falso, fechas en el formato que necesite
  • Codificaciones resueltasSalida en UTF-8 a partir de CSV en cualquier codificación habitual
  • Código legibleCon comentarios, fácil añadir un campo más adelante

Cómo funciona

  1. 1
    MuestrasUsted envía unas filas del CSV y una muestra del JSON o XML que necesita
  2. 2
    CódigoEscribimos el script y la guía para ejecutarlo
  3. 3
    PruébeloConvierte su archivo y lo prueba en el sistema que lo necesita
  4. 4
    CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error

Qué necesitamos de usted

10-20 filas de su CSV (valen valores inventados) y cómo debe ser el resultado: un archivo JSON o XML de muestra, la parte de la documentación del otro sistema que lo describe, o un esquema XSD si lo hay. Qué columna va a qué campo, cómo deben escribirse fechas y números, y si varias filas forman un registro. Su sistema: Windows, macOS o Linux.

Le preguntaremos:

  • ¿Adónde irá el JSON o XML?
  • ¿Cómo es el CSV?
  • ¿Cómo debe ser el resultado?
  • ¿Dónde se ejecutará?

Comparar paquetes

PaquetesBásicoUna conversión plana16 US$EstándarConversión con configuración33 US$PremiumHerramienta de conversión67 US$
Plazo1 día2 días3 días
Cambios123
Códigohasta 150 líneashasta 400 líneashasta 1.000 líneas
Archivos de código1hasta 3hasta 8
Archivo de configuraciónNoSíSí
Mensajes de error claros y registroNoSíSí
Opciones de ejecución y guía para ejecutarlo de forma programadaNoNoSí
Guía de instalación y uso (README)SíSíSí
LenguajePythonPythonPython
Hacer pedido BásicoHacer pedido EstándarHacer pedido Premium

Protección de pago

Usted paga al hacer el pedido, pero el dinero solo se libera por un trabajo aceptado.

  • Precio fijoEl precio del paquete no cambia después del pago.
  • El dinero queda reservadoAl pagar, el importe solo queda reservado. Pasa a Dleex cuando usted acepta el trabajo.
  • Revisado antes de la entregaCada resultado pasa un control de calidad antes de llegar a usted, y lo ve en la página del pedido antes de aceptarlo.
  • Cambios gratuitosSolicite cambios dentro de su brief tantas veces como permita el paquete.
  • Aceptación a los 3 díasSi en los 3 días siguientes a la entrega no acepta el trabajo ni solicita cambios, se acepta automáticamente. Si escribe en el chat del pedido después de la entrega, el pedido queda en espera; cuando le respondamos, podremos reiniciar el plazo de 3 días y se lo indicaremos en el chat.
  • Rehacer el trabajo o reembolso totalSi el resultado no se ajusta a su brief y los cambios no lo resolvieron, o el trabajo tarda más del doble de su plazo, escriba en el chat del pedido: rehacemos el trabajo o le reembolsamos el pago íntegro.
Cómo funciona →

Preguntas y respuestas

¿Puede validar el XML con un esquema?

En Premium sí, si envía el archivo XSD: el script informa de las filas que no encajan. Que el otro sistema acepte finalmente el archivo depende de sus propias comprobaciones.

¿Puede hacerlo a la inversa, de JSON a CSV?

Sí, es el mismo tipo de trabajo. Descríbalo en el brief y envíe una muestra del JSON.

¿Puede enviar el resultado a una API?

Esta oferta crea el archivo. El envío a la API de un servicio puede añadirse dentro del límite de líneas de Premium, si el servicio tiene una API pública y usted pone su propia clave en el archivo de configuración.

¿Necesito saber programar?

No. El README explica cómo instalar Python una vez y ejecutar el script con su archivo.

¿No encontró su respuesta?

Paquetes