Erreur

matrixouj Messages postés 2 Statut Membre -  
matrixouj Messages postés 2 Statut Membre -
je suis débutant en python, et j'ai besoin de développer un programme qui récupère les résultats SQL dans plusieurs lots (en format jsonl) de 500 lignes dans chaque fichier jsonl.

Merci

2 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Nous ne feront pas votre exercice à votre place.
    Merci de décrire précisément votre problème et en postant le code déjà réalisé.

    Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.

    Pour poster votre code, merci de penser à la coloration syntaxique.
    0
  2. matrixouj Messages postés 2 Statut Membre
     
    Bonjour,

    Ce n'est pas le but, je veux juste des explication si c'est possible.
    Voici mon code python :
    app.py:
    #import pdb; pdb.set_trace()
    logger.info("Selection des lignes à traiter")
    error_code, error_message, list_ligne = notification_cbs.select_list_ligne(args.server_name, args.db_name, args.etat)
    if error_code != 200 :
        error_description = render_templates(
            tmpl=errors[error_code],
            error_message=error_message
        )
        logger.error("{}".format(error_description))
        sys.exit(1)
    
    logger.info("Enregistrement du résultat de la requête dans un fichier de sortie.")
    
    try:
        for i in range(2):
            args.output = "output{}.jsonl".format(i+1)
            with jsonlines.open(args.output, 'w') as writer:
                           pass
            writer.write_all(list_ligne)
    except (IOError, OSError) as error:
        error_code = 1701
        error_message = render_templates(
            tmpl=errors[error_code],
            error_message=str(error)
        )
    except Exception as error:
        error_code = 1000
        error_message = render_templates(
            tmpl=errors[error_code],
            error_message=str(error)
        )
    if error_code != 200:
        logger.error("Une erreur est survenue lors de l'écriture du résultat :\n{}".format(error_message))
        logger.error("Le résultat est :\n{}".format(list_ligne))
        sys.exit(1)
    


    db.py :
     def select_list_ligne(self, server_name, db_name, etat):
            """
                récupération des infos etat 12
            """
            list_ligne = None
            (error_code, error_message, db_session) = self.connect()
    
            if error_code != 200:
                return (error_code, error_message, list_ligne)
    
            try:
                print("1")
                request_id = traceback.extract_stack()[-1][2]
                sql_request = self.db_requests[request_id]
                print("sql_request =", sql_request)
                ms_cursor = db_session.cursor()
                print("2")
                ms_cursor.execute(sql_request)
                print("3")
                list_ligne = ms_cursor.fetchall()
                print("4")
            except _mssql.MSSQLDatabaseException as error:
                print("MS SQL ERROR")
                error_code = 1202
                error_message = {
                    "description": str(error),
                    "sql_request": sql_request
                }
    
            except Exception as error:
                print("Another ERROR")
                error_code = 1000
                error_message = str(error)
            finally:
                print("5")
                if ms_cursor:
                    print("6")
                    ms_cursor.close()
                    print("7")
                    db_session.close()
            print("8")
            if not list_ligne:
                print("9")
                list_ligne = [{'data': 'No data avalaible'}]
            print("10")
            return (error_code, error_message, list_ligne)
    


    Le but de ce progrmmae est de récupéré les résultats SQL
    dans plusieurs lots (en format jsonl) de 500 lignes dans chaque fichier jsonl.

    Merci par avance

    EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
    Explications disponibles ici : ICI

    Merci d'y penser dans tes prochains messages.
    0