IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

affecter le résultat d'un print dans une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut affecter le résultat d'un print dans une liste
    Bonjour,
    Dans mon appli python, j'ai une variable de type <cx_Oracle.DatabaseError>, si je print cette variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >print type(error)
    <cx_Oracle.DatabaseError>
    >print error
    [' ','ORA-01407 : cannot update']
    Je voudrais récupérer le résultat du print pour en faire une liste et obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >print type(malist)
    <type 'list'>
    print malist
    [' ','ORA-01407 : cannot update']
    Ce qui équivaut aussi à convertir une variable de type <cx_Oracle.DatabaseError> en string ou en list.
    Comment puis je faire cela ?
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Bonjour,

    Je ne sais pas reproduire une erreur cx_Oracle donc je prend une erreur Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    >>> l = []
    >>> try:
    ...     x = 1/0
    ... except ZeroDivisionError as why:
    ...     l.append(why)
    ... 
    >>> l
    [ZeroDivisionError('integer division or modulo by zero',)]
    Si il te le faut sous forme de chaîne tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            l.append(why.__repr__())
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >>> l
    [ "ZeroDivisionError('integer division or modulo by zero',)"]

    Edit: J'oublie que tu peux avoir le message seul avec

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Salut,

    L'objet DatabaseError a les attributs "code", "offset", "message" et "context".
    A priori, "print" affiche la valeur de "code" et "message" sous forme d'une "liste".

    Récupérer un ou plusieurs de ces attributs pour les stocker dans une liste ou tuple spécifique devrait se réaliser "simplement" avec une fonction, genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def extract_error(db_error):
         return list(db_error.code, db_error.message)
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    L'objet DatabaseError a les attributs "code", "offset", "message" et "context".
    - W
    Comment le savez vous ?
    Merci

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 752
    Par défaut
    Citation Envoyé par awalter1 Voir le message
    Comment le savez vous ?
    J'ai pris le temps de lire la documentation des exceptions de cx_oracle.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre éprouvé Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Par défaut

    pan sur mon bec !
    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affecter le résultat d'une requête " createNativeQuery " dans une liste<Entity>
    Par gerxwcv dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 20/09/2013, 20h39
  2. Réponses: 7
    Dernier message: 08/08/2011, 16h54
  3. Résultat d'un recordset dans une liste modifiable
    Par pompidouwa dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/09/2007, 14h48
  4. Réponses: 2
    Dernier message: 10/04/2007, 17h27
  5. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo