79702286

Date: 2025-07-15 15:18:20
Score: 12
Natty:
Report link

como andan ? Tengo un error 404 al crear una api con flask con.

<!doctype html>
<html lang=en>
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try
    again.</p>


Les adjunto el codigo si me pueden ayudar donde le estoy errando gracias. 
from flask import Flask, request, jsonify
from iso8583 import encode, decode
from iso8583.specs import default_ascii as spec
import re
import os
import json
from datetime import datetime
def obtener_valor_campo(parsed, campo):
    valor = parsed.get(campo)
    if isinstance(valor, dict) and "value" in valor:
        return valor["value"]
    return valor 

app = Flask(__name__)

def reconstruir_mensaje(texto):
    bloques = re.findall(r'\[(.*?)\]', texto)
    return ''.join(bloques)

def extraer_campos_iso(mensaje_iso):
    try:
        iso_bytes = mensaje_iso.encode()
        parsed, _ = decode(iso_bytes, spec=spec)
        return {
            "mti": parsed.get("mti"),
            "campo_3": obtener_valor_campo(parsed, "3"),
            "campo_4": obtener_valor_campo(parsed, "4"),
            "campo_7": obtener_valor_campo(parsed, "7")
        }
    except Exception as e:
        return {"error": f"Error decodificando mensaje ISO: {str(e)}"}

@app.route('/extraer_campos', methods=['GET'])
def procesar_texto():
    try:
        datos = request.get_json()
        texto = datos.get("texto", "")
        mensaje_iso = reconstruir_mensaje(texto)
        resultado = extraer_campos_iso(mensaje_iso)
        return jsonify(resultado)
    except Exception as e:
        return jsonify({"error": f"Error general: {str(e)}"}), 500


def es_binario(cadena):
    return all(c in '01' for c in cadena)

def limpiar_a_binario(cadena):
    return ''.join(c for c in cadena if c in '01')

def procesar_archivo(ruta_archivo, ruta_json, codificacion='utf-8'):
    lista_datos = []
    try:
        with open(ruta_archivo, 'r', encoding=codificacion) as archivo_lectura:
            for i, linea in enumerate(archivo_lectura, start=1):
                linea = linea.strip()
                if not linea:
                    continue
                if es_binario(linea):
                    binario_entrada = linea
                else:
                    binario_entrada = limpiar_a_binario(linea)
                if not binario_entrada:
                    print(f"Línea {i}: no contiene dígitos binarios válidos, se omite.")
                    continue
                decimal = int(binario_entrada, 2)
                hora_actual = datetime.now().strftime('%H:%M:%S.%f')[:-3]
                origen_trx = "POS"
                destino_trx = "EPS"
                mti = '0200'
                iso_message_fields = {
                    't': mti,
                    '3': '001000',
                    '4': '000000100002',
                    '7': '0508155540',
                    '11': '000002',
                    '12': '155540',
                    '13': '0508',
                    '22': '021',
                    '19': '032',
                    '24': '111',
                    '25': '00',
                    '35': '6799990100000000019D2512101045120844',
                    '41': '38010833',
                    '42': '23659307       ',
                    '46': '1',
                    '48': '001',
                    '49': '032',
                    '52': 'AEDB54B10FF671F5',
                    '59': '021000100407070840001023209FFFFF0220002200000DB02800010040784',
                    '60': 'WPH0001',
                    '62': '0002',
                }
                encoded_iso_raw, _ = encode(iso_message_fields, spec)
                decoded_iso_data, _ = decode(encoded_iso_raw, spec)
                lista_datos.append({
                    'hora_procesamiento': hora_actual,
                    'origen_transaccion': origen_trx,
                    'destino_transaccion': destino_trx,
                    'decimal_from_input': decimal,
                    'iso_message_raw': encoded_iso_raw.decode('ascii'),
                    'iso_message_decoded': decoded_iso_data
                })
        with open(ruta_json, 'w', encoding=codificacion) as f_json:
            json.dump(lista_datos, f_json, indent=2)
        print(f"Archivo JSON guardado en: {ruta_json}")
    except FileNotFoundError as fnf_error:
        print(f"Error: archivo no encontrado: {fnf_error}")
    except Exception as e:
        print(f"Error inesperado: {e}")


if __name__ == "__main__":
    # Define aquí las rutas de entrada y salida:
    ruta_archivo = r"C:\Users\mbale\Downloads\AutomatizacionAudit\LecturaAudit\POS-EPS\LecturaAudit.txt"
    ruta_json = r"C:\Users\mbale\Downloads\AutomatizacionAudit\LecturaAudit\POS-EPS\Salida.json"
    procesar_archivo(ruta_archivo, ruta_json)
    app.run(debug=True, host="127.0.0.1", port=5000)
Reasons:
  • Blacklisted phrase (2): ayuda
  • Blacklisted phrase (2): Tengo
  • Blacklisted phrase (2): gracias
  • Blacklisted phrase (2): estoy
  • Blacklisted phrase (2): crear
  • RegEx Blacklisted phrase (2): encontrado
  • Long answer (-1):
  • Has code block (-0.5):
  • Contains question mark (0.5):
  • Low reputation (1):
Posted by: matias bale