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 !
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 !
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.