Partage
  • Partager sur Facebook
  • Partager sur Twitter

Envoi en base de données SQL, erreur..

    8 mars 2016 à 10:30:51

    Bonjour,

    Je viens à votre secours, cela fait un bon moment que je planche sur une erreur lors d'un envoi vers sql..

    Python 2.7 11

    Librairie Mysqldb

    Ce code marche très bien :

    import serial
    import time
    ser = serial.Serial('COM5', 9600, timeout=0)
    # Import de la librairie MySQL
    import MySQLdb
    # DB Connexion
    db = MySQLdb.connect("localhost","root","","vitesses" )
    # prepare a cursor object using cursor() method
    cursor = db.cursor()	
    	
    
    while 1:
    	try:
    		temps = ser.readline()
    		if(temps != ""):
    			print(temps)
    		#time.sleep(0.01)
    	except ser.SerialTimeoutException :
    		print('Data could not be read')
    		time.sleep(1)
    		
    	if(temps != ""):	
    		cursor.execute("INSERT INTO v_inst(DeltaT) VALUES(2)")
    		db.commit()
    

    Mais moi, je veux insérer la variable temps qui conviens des valeurs de type 1248383538 récupérées via arduino. J'ai donc écrit :

    import serial
    import time
    ser = serial.Serial('COM5', 9600, timeout=0)
    # Import de la librairie MySQL
    import MySQLdb
    # DB Connexion
    db = MySQLdb.connect("localhost","root","","vitesses" )
    # prepare a cursor object using cursor() method
    cursor = db.cursor()	
    	
    
    while 1:
    	try:
    		temps = ser.readline()
    		if(temps != ""):
    			print(temps)
    		#time.sleep(0.01)
    	except ser.SerialTimeoutException :
    		print('Data could not be read')
    		time.sleep(1)
    		
    	if(temps != ""):	
    		cursor.execute("INSERT INTO v_inst(DeltaT) VALUES(%s)",(temps))
    		db.commit()
    

    Mais le programme me retourne l'erreur suivante :

    TypeError: 'str' object is not callable

    Je ne comprends pas comment corriger cette erreur ... Merci !

    -
    Edité par Maxime001 8 mars 2016 à 10:34:07

    • Partager sur Facebook
    • Partager sur Twitter
      8 mars 2016 à 10:51:51

      J'ai trouvé la solution ... Dans ma requete SQL, dernière ligne :

      cursor.execute("INSERT INTO v_inst(DeltaT) VALUES(%s)",[temps])

      Merci quand même !

      • Partager sur Facebook
      • Partager sur Twitter

      Envoi en base de données SQL, erreur..

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown