【发布时间】:2016-02-27 16:53:10
【问题描述】:
import serial
import MySQLdb
dbConn = MySQLdb.connect("localhost","root","test","ISEF_DB") or die ("Could not connect to database")
cursor = dbConn.cursor()
device = '/dev/ttyACM0'
try:
print "Trying...",device
arduino = serial.Serial(device, 250000)
except:
print "Failed to connect on",device
try:
data = arduino.readline() #read data
# pieces = data.split("\t")
print "The data is:",data
if data == 461518B1:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '461518B1'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 46154D41:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '46154D41'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 4615A161:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '4615A161'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 4616A511:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '4616A511'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 46193031:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '46193031'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 46196771:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '46196771'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 461A79D1:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '461A79D1'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 46211881:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '46211881'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 465598F1:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '465598F1'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
elif data == 9A2DCDE4:
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = '9A2DCDE4'")
dbConn.commit()
cursor.close()
print "data inserted"
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
print "done"
else:
print "Card not recognized"
except:
print "Failed to get data"
这段代码给了我以下错误
File "test.py", line 19
if 461518B1 == data:
^
SyntaxError: invalid syntax
我想要做的是将变量与字符串进行比较,但它不起作用。我看不出我做错了什么。数据值只能是包含数字和字母的 10 个 if 语句之一。我没有看到任何语法问题。有人可以帮忙解决错误吗?
谢谢
【问题讨论】:
-
461518B1不是字符串,"461518B1"或'461518B1'是。 -
另外,您提供的跟踪不可能来自您提供的代码,因为您的代码中不存在
if 461518B1 == data:。 -
您正在将某物与它不是的某物进行比较。
标签: python mysql-python pyserial