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 :

MariaDB Python lister une seul colonne


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Points : 3
    Points
    3
    Par défaut MariaDB Python lister une seul colonne
    Bonjour,
    J'ai un petit souci pour lister le contenu d'une base de donnée lors de la recherche sur 1 seul colonne....
    Pourtant simple, mais j'ai un retour d'info étrange, si quelqu'un à déjà eu le problème.

    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import mysql.connector as mariadb
     
    mariadb_connection = mariadb.connect(host="localhost",user="xxx",password="xxx", database="diaporama")
    cursor = mariadb_connection.cursor()
    cursor.execute("SELECT files FROM diaporama")
     
    for files in cursor.fetchall():
    	print files
     
    mariadb_connection.close()
    me retourne ça :
    (u'art.jpg',)
    (u'alena.jpg',)
    (u'Chrysanthemum.jpg',)
    (u'Desert.jpg',)
    (u'Hydrangeas.jpg',)
    (u'IMG_20160420.jpg',)
    (u'video_animaux.mp4',)
    Etrange, non ?, je pourrais filtrer pour extraire seulement mes données de noms de fichiers
    alors que si je fait cela ( inclure une deuxième colonne à ma recherche SELECT ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
     
    import mysql.connector as mariadb
     
    mariadb_connection = mariadb.connect(host="localhost",user="xxx",password="xxx", database="diaporama")
    cursor = mariadb_connection.cursor()
    cursor.execute("SELECT files, duree FROM diaporama")
     
    for files, duree in cursor.fetchall():
    	print files
     
    mariadb_connection.close()
    les données retournés sont correct :
    art.jpg
    alena.jpg
    Chrysanthemum.jpg
    Desert.jpg
    Hydrangeas.jpg
    IMG_20160420.jpg
    video_animaux.mp4
    Je connais assez bien les BDD mais novice en python, peut être que ça provient de là le problème.
    Merci d'avance pour votre aide.

    Server version: 10.1.37-MariaDB-0+deb9u1 Raspbian 9.0
    Python 2.7.13

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Citation Envoyé par mk2power Voir le message
    J'ai un petit souci pour lister le contenu d'une base de donnée lors de la recherche sur 1 seul colonne....
    Pourtant simple, mais j'ai un retour d'info étrange, si quelqu'un à déjà eu le problème.
    Quelque soit la base de données, select va vous retourner un tas de lignes contenant les colonnes demandées sous la forme d'un tuple. Et si vous demandez une colonne, çà retournera un tuple à un seul élément. Pour l'extraire, il suffit de le récupérer via son index i.e. tuple[0]

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    bonjour wiztricks,

    Merci d'avoir pris le temps de me répondre.

    effectivement ça fonctionne mieux avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for files in cursor.fetchall():
    	print files[0]
    Enfin faut que je planche dessus car j'ai rien compris car j'aurais du avoir quelques chose en [1] ...
    enfin ça fonctionne , je reviendrais dessus plus tard ...

    J’envisageais un souci d’Unicode, il semble qu'il y a des différences sur ce point entre Python 2.7 et Python 3.
    De plus la base à été créé en utf8mb4
    Je regarderais ce point plus tard également ...

    Encore merci pour votre rapidité

    Serge

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 241
    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 241
    Points : 36 698
    Points
    36 698
    Par défaut
    Salut,

    Citation Envoyé par mk2power Voir le message
    Enfin faut que je planche dessus car j'ai rien compris car j'aurais du avoir quelques chose en [1] ...
    Avec une seule colonne et des index qui commencent à 0... [1] c'est juste IndexError!

    Citation Envoyé par mk2power Voir le message
    J’envisageais un souci d’Unicode, il semble qu'il y a des différences sur ce point entre Python 2.7 et Python 3.
    Ici, la seule différence, outre le "print" c'est le u qui préfixe les chaines de caractères.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Afficher plusieur colonnes sur une seule colonne ?
    Par Interruption13h dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/02/2007, 17h57
  2. Figure sur une seule colonne
    Par Eusebius dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 09/07/2006, 00h46
  3. Jtable/Une seule colonne éditable
    Par bygui dans le forum Composants
    Réponses: 6
    Dernier message: 03/05/2006, 11h53
  4. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 12h24
  5. Resultat requete dans une seule colonne
    Par mathieu--g dans le forum Sybase
    Réponses: 2
    Dernier message: 08/07/2003, 14h42

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