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.

Ejemplo de resultado
Revisión de código: script en Python para importar pedidos de una tienda online
Qué hace el código
- Lee
orders.csvexportado de la tienda. - Para cada línea de pedido, busca el producto por SKU en
stock.xlsxy resta la cantidad. - Guarda el stock actualizado y registra los totales en
import_log.txt.
La estructura es clara y las funciones tienen buenos nombres. Casi todos los problemas vienen de datos de entrada que no tienen la forma que el script espera.
Errores y puntos débiles
| # | Línea | Gravedad | Problema |
|---|---|---|---|
| 1 | 48 | Alta | El mismo CSV se puede importar dos veces; no se comprueban los ID de pedido ya procesados. Es la causa más probable del stock negativo. |
| 2 | 72 | Alta | int(row["qty"]) falla con valores vacíos o «2.0» de pedidos reembolsados. |
| 3 | 95 | Media | La búsqueda por SKU distingue mayúsculas: «gt-101» y «GT-101» se tratan como productos distintos. |
| 4 | 130 | Media | El archivo se abre sin encoding="utf-8", así que los nombres con tildes se rompen en Windows. |
| 5 | 201 | Baja | Un except: genérico oculta los errores reales y vuelve inútil el log. |
Fragmentos corregidos
Problema 1: omitir pedidos ya importados
processed = load_processed_ids("processed_orders.txt")
for row in reader:
if row["order_id"] in processed:
continue
# ... lógica existente ...
processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)
Por qué: cada pedido se aplica una sola vez, aunque vuelva a ejecutar el script con el mismo archivo.
Problema 2: leer la cantidad de forma segura
raw = (row.get("qty") or "").strip()
try:
qty = int(float(raw))
except ValueError:
log.warning("Pedido %s: cantidad no válida %r, omitido", row["order_id"], raw)
continue
Por qué: las líneas reembolsadas o parciales se omiten con una nota clara en lugar de detener toda la importación.
Problema 3: normalizar los SKU
sku = row["sku"].strip().upper()
Aplique el mismo .strip().upper() al construir el diccionario de stock.
Estilo y legibilidad
process()tiene 90 líneas; divídala enread_orders,apply_to_stockywrite_report.- Reemplace los números de columna «mágicos» (
row[7]) por los nombres de las cabeceras.
Pruebe cada corrección con una copia de sus archivos: leímos el código, pero no lo ejecutamos.
Cliente: dueña de una tienda de tés que escribió un script en Python de 310 líneas para importar los pedidos desde un CSV exportado a la planilla de stock Problema reportado: «A veces el stock queda en negativo y el script se cae con algunos archivos».
El cliente y todos los datos son ficticios.
Acerca de este servicio
Una consulta puede devolver cifras verosímiles y aun así estar mal: un join que multiplica filas, un WHERE que descarta los NULL, un LEFT JOIN convertido sin aviso en uno interno o una función sobre una columna indexada que obliga a un recorrido completo. Leemos sus consultas para su motor de base de datos, le explicamos paso a paso qué devuelve cada parte y señalamos los errores de lógica y los puntos lentos. Las consultas corregidas incluyen una nota sobre qué cambió en el resultado y por qué.
Qué incluye
- Qué recibeUna revisión escrita en la página del pedido: qué devuelve cada consulta, errores y puntos lentos por importancia y SQL corregido para su motor. Premium añade sugerencias de índices basadas en la estructura de sus tablas y el plan de consulta que pegue.
- Joins revisadosFilas duplicadas o perdidas
- Manejo de NULLFiltros y agregados que omiten valores
- Lógica de agrupaciónGROUP BY, HAVING y funciones de ventana
- Puntos lentosRecorridos, subconsultas, funciones sobre columnas
- Consultas corregidasEn el dialecto de su motor
Cómo funciona
- 1BriefUsted pega las consultas y la estructura de las tablas
- 2LecturaRecorremos cada cláusula
- 3RevisiónUsted recibe errores, correcciones y explicaciones
Qué necesitamos de usted
Las consultas y las sentencias CREATE TABLE pegadas como texto o en capturas de pantalla, el motor de base de datos y su versión, qué resultado espera y, para las consultas lentas, la salida de EXPLAIN.
Le preguntaremos:
- ¿Qué motor de base de datos y qué versión?
- ¿Qué debe devolver la consulta?
- ¿El problema son resultados incorrectos o lentitud?
- ¿Cuántas filas tienen aproximadamente las tablas principales?
Comparar paquetes
| Paquetes | BásicoSQL de hasta 100 líneas15 US$ | EstándarSQL de hasta 400 líneas35 US$ | PremiumHasta 1.000 líneas con consejos de índices69 US$ |
|---|---|---|---|
| Plazo | 1 día | 2 días | 3 días |
| Cambios | 1 | 2 | 3 |
| Líneas de código | hasta 100 | hasta 400 | hasta 1.000 |
| Fragmentos corregidos | Sí | Sí | Sí |
| Sugerencias de índices | No | No | Sí |
| Hacer pedido Básico | Hacer pedido Estándar | Hacer 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.
Preguntas y respuestas
¿Ejecutan las consultas sobre mis datos?
No. No nos conectamos a su base de datos. Leemos el SQL y la estructura que nos envía, así que pruebe las consultas corregidas en una copia antes de usarlas en producción.
¿Debo enviar datos reales?
No hace falta. Bastan la estructura de las tablas y unas pocas filas de ejemplo inventadas; por favor, no incluya datos personales.
¿Pueden explicar una consulta que escribió otra persona?
Sí. Describimos lo que devuelve cláusula por cláusula, que a menudo es la forma más rápida de descubrir por qué las cifras se ven extrañas.