Erreur

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. Modérateur
    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.
    1. 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.