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 :

[PROB] Extraire les données d'un tuple


Sujet :

Python

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [PROB] Extraire les données d'un tuple
    Bonjour à tous,

    J'ai un script python qui vient lire les données présentes dans une BDD MySQL

    Il extrait par exemple le pseudonyme d'une personne, et lorsque je fais print tuple j'obtiens ceci : ('pseudonyme',)

    Mon problème est le suivant, j'ai une fonction envoi_message qui prend en argument le pseudonyme du destinataire mais si je fais

    envoi_message(tuple) bien entendu cela ne marche pas...

    Comment puis je extraire alors le pseudonyme du tuple sans les parentheses et guillemet ?

    Merci d'avance !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    cursor.execute('select nom from pseudo where envoi="oui"')
    results = cursor.fetchall()
    result = results[0]
    print result

    Justement quand je fais ca j'obtiens : ('pseudonyme',)

  4. #4
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cursor.execute('select nom from pseudo where envoi="oui"')
    results = cursor.fetchall()
    result = results[0]
    print result[0]
    "Etre conscient de la difficulté permet de l'éviter.."
    Lao-Tseu.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Si je me souviens bien fetchall renvoie une liste de tuples, donc il faut le faire deux fois

  6. #6
    Membre averti Avatar de alexdevl
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 265
    Points : 344
    Points
    344
    Par défaut Exemple SQL
    Si cela peux t'aider, je m'était fait cette liste d'exemples :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    #!/usr/bin/env python
    # -*- coding: iso-8859-1 -*-
     
    # import de SQLITE
    import sqlite3,os,os.path
    if os.path.exists('test.db') : os.remove('test.db')
    connection = sqlite3.connect('test.db') #Création d'un objet connection à la BDD, connection ou création si pas d'existence
    cursor = connection.cursor() #Création de l'objet curseur
     
    #  Création de la table
    cursor.execute('CREATE TABLE names (id INTEGER PRIMARY KEY,name VARCHAR(50), email VARCHAR(50))')
     
    # Entrée directe d'enregistrement
    cursor.execute('INSERT INTO names VALUES (null, "jean dupont","jdupont@jdupont.ll")')
    cursor.execute('INSERT INTO names VALUES (null, "patrice martin","pmartin@pmartin.yy")')
    print "dernière ligne rentrée=",cursor.lastrowid
     
    # Entrée indirecte d'enregistrement
    name = "pascal durand"
    email ="p@durand.ll"
    cursor.execute('INSERT INTO names VALUES (null, ?, ?)',(name, email))
    connection.commit()
     
    # Annulation de modification de la base
    cursor.execute('INSERT INTO names VALUES (null, "rene core", "rene@core.rr")')
    connection.rollback()
     
    # Affichage des enregistrements
    print
    print
    print "A] Parcours direct du curseur avec une boucle for"
    cursor.execute('SELECT * FROM names')
    for row in cursor :
        for r in row:
            print r,
        print
    print
     
     
    print "B] avec fetchall"
    cursor.execute('SELECT * FROM names')
    print cursor.fetchall()
    print 
     
     
    print "C] avec fetchmany 2 enregistrements"
    cursor.execute('SELECT * FROM names')
    print cursor.fetchmany(2)
     
    print
    print "D] avec fetchone et une boucle while true"
    cursor.execute('SELECT * FROM names')
    while True:
        a=cursor.fetchone()
        if a==None : break
        print a, a[0],a[1],a[2]
     
    print
    print "Strucuture de la base :"
     
    cursor.execute('select * from sqlite_master')
    while True:
        a=cursor.fetchone()
        if a==None : break
        print a
     
     
    print cursor
     
    cursor.close()
    connection.close()

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Un deuxieme fetchall me provoque une erreur, et lorsque je fais

    envoi_message(results[0])

    def envoi_message (results):

    print "Envoi du message au compte %s" % results
    print results


    J'obtiens le résultat suivant ( c'est à rien n'y comprendre )

    Envoi du message au compte pseudonyme
    ('pseudonyme',)

  8. #8
    Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    C'est bon problème résolu

    print "Envoi du message au compte %s" % results

    infos = urllib.urlencode({"posted": "TRUE", "pseudo_dest": "%s" % results)

Discussions similaires

  1. [Talend open studio] Comment extraire les données à partir d'Oracle ?
    Par aymengomez dans le forum Développement de jobs
    Réponses: 19
    Dernier message: 15/05/2009, 12h09
  2. Réponses: 1
    Dernier message: 26/01/2007, 08h15
  3. Extraire les données ID3 d'une musique
    Par FluidBlow dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/10/2006, 20h04
  4. Réponses: 12
    Dernier message: 18/07/2006, 19h51
  5. Pour extraire les données d'un fichier texte
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 02/05/2006, 15h01

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