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

Interfaçage autre langage Python Discussion :

PostgreSQL / Python [Python 3.X]


Sujet :

Interfaçage autre langage Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2019
    Messages : 5
    Points : 6
    Points
    6
    Par défaut PostgreSQL / Python
    Bonjour

    je voudrais insérer dans une base postgresql des valeurs entier présentent dans deux listes (ici c'est un extrait).

    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
    liste1 = [245120,245487,245333,245487]
     
    liste2 = [1254547,1254879,1245876,1245895]
     
    liste3 = [liste1,liste2]
     
    conn = psycopg2.connect(database="mabase",
                            user="postgres",
                            host="localhost",
                            password="test",
                            port="5432")
     
    cur = conn.cursor()
     
    cur.executemany("""INSERT INTO point(x, y) VALUES(%s, %s)""", liste3) 
    conn.commit()
    il affiche ce message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeError: not all arguments converted during string formatting

  2. #2
    Expert éminent

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

    Informations forums :
    Inscription : octobre 2008
    Messages : 4 180
    Points : 6 560
    Points
    6 560
    Par défaut
    Salut,

    C'est normal:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    >>> l = ["a", "b", "c"]
    >>> l1 = ["d", "e", "f"]
    >>> l2 = [l, l1]
    >>> print("listes: %s, %s" % l2)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: not enough arguments for format string
    >>> l2 = (l, l1)
    >>> print("listes: %s, %s" % l2)
    listes: ['a', 'b', 'c'], ['d', 'e', 'f']

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    juin 2008
    Messages
    17 558
    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 : 17 558
    Points : 30 295
    Points
    30 295
    Par défaut
    Citation Envoyé par zouhaib2009 Voir le message
    je voudrais insérer dans une base postgresql des valeurs entier présentent dans deux listes
    Le SQL est: "INSERT INTO point(x, y) VALUES(%s, %s)".
    Un point est défini par ses coordonnées (x, y).
    Et une liste de N points sera définie par [(x0, y0), (x1, y1),... (xN, yN)

    Donc en supposant qu'avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    liste1 = [245120,245487,245333,245487]
     
    liste2 = [1254547,1254879,1245876,1245895]
    liste1 représente l'axe des abscisse ( les "x") et liste2 l'axe des ordonnées ( les "y")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste3 = [liste1,liste2]
    ne fera pas une liste de coordonnées!

    Par contre avec "zip", on pourrait écrire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cur.executemany("""INSERT INTO point(x, y) VALUES(%s, %s)""", zip(liste1, liste2))
    qui à défaut de fonctionner (pas testé) ressemble à une liste de "points".

    - 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. [Python 3.X] Problème de requete SQL - PostgreSQL/Python/Psycopg2
    Par virtualy034 dans le forum Réseau/Web
    Réponses: 13
    Dernier message: 01/08/2018, 09h18
  2. [Python+PostgreSQl] lenteur de requêtes
    Par guestCam dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/08/2007, 13h41
  3. Test Access Python Postgresql
    Par jnore dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 27/12/2006, 00h32
  4. Utiliser Python et PostGresql pour créer un site Web
    Par rvweb dans le forum Réseau/Web
    Réponses: 8
    Dernier message: 22/10/2006, 20h03
  5. python wxpython postgresql
    Par frouty dans le forum wxPython
    Réponses: 3
    Dernier message: 14/06/2006, 06h01

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