[英]Python Try: Syntax Error
我正在尝试设置一个python程序来编译来自我的arduino输入的数据库,而try:
命令给我一个错误,我不确定我理解为什么
import serial
import MySQLdb
dbConn = MySQLdb.connect("localhost","root","Mecool100","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")
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = data”)
dbConn.commit()
cursor.close()
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
except:
print "Failed to get data"
此代码返回以下错误:
File "test.py", line 21
try:
^
SyntaxError: invalid syntax
有人可以帮助我找到我的错误吗?
谢谢 :)
其他人说你try
后except
积木except
你需要的是正确的...但他们错过了你已经拥有它们。 真的,问题是这一行
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = data”)
应该这样:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = data")
”
实际上与"
不是同一个字符"
;它是CP1252中的代码点146(有时被错误地称为ANSI)或Unicode中的代码点8221.执行chr("”")
以便自己查看。
您还需要缩进第三个try
块,因此最后,您的代码应如下所示:
import serial
import MySQLdb
dbConn = MySQLdb.connect("localhost","root","Mecool100","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")
try:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = data")
dbConn.commit()
cursor.close()
except MySQLdb.IntegrityError:
print "Failed to insert data"
finally:
cursor.close()
except:
print "Failed to get data"
第二次try:
需要一个except
和/或finally
块try:
block。 try
没有except
或者finally
没有意义,所以额外的块是语法必需的。
在你的第三个try
块,你应该移动except
超前的finally
。
此外,此行中有一个粗略的引号字符:
cursor.execute("UPDATE `ISEF_DB`.`attendance` SET `present`='1' WHERE `id` = data”)
确保它是"
在你的代码中,而不是”
。
每个try语句都必须有一个except子句
try:
1/0
except ZeroDivisionError:
print("oops")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.