Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7.3如果将变量与字符串进行比较_Python_Mysql Python_Pyserial - Fatal编程技术网

Python 2.7.3如果将变量与字符串进行比较

Python 2.7.3如果将变量与字符串进行比较,python,mysql-python,pyserial,Python,Mysql Python,Pyserial,这段代码给了我以下错误 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

这段代码给了我以下错误

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"
我试图做的是将变量与字符串进行比较,但它不起作用。我看不出我做错了什么。数据值只能是包含数字和字母的10个
if
语句之一。我没有看到任何语法问题。有人能帮我纠正这个错误吗


谢谢

虽然这并不能直接回答您的问题(在评论中已充分说明,即


461518B1
不是字符串,
不是“461518B1”
不是“461518B1”

(使用引号指定字符串文字)

我想指出的是,您可以修改代码以避免冗余,因为您似乎在每个if/elif`块中使用相同的代码块:

  File "test.py", line 19
    if 461518B1 == data:
              ^
SyntaxError: invalid syntax

461518B1
不是字符串,
461518B1
'461518B1'
是。此外,您提供的跟踪不可能来自您提供的代码,因为
如果461518B1==数据:
在您的代码中不存在。您正在将某个内容与不存在的内容进行比较。谢谢,我理解。
id\u值
来自刷卡到arduino rfid evalua的rfid卡操作屏蔽。打印行
数据为:
显示rfid卡的正确值,但是,程序以
卡未识别
结束。因此,我知道正在读取卡,读取的值是可能的
id\u值之一
所需。变量
数据
id\u值之一不相关如果id值中的data.strip()
@turnerison可以测试解决方案吗?我的问题是,读取器将其作为值读取,然后在末尾添加一个\r\n。函数
strip()
应该可以解决这个问题,不是吗?
id_values = ['461518B1', '46154D41', '4615A161', '4616A511', '46193031', '46196771', '461A79D1', '46211881', '465598F1', '9A2DCDE4']

data = arduino.readline() # read data
data = data.strip()       # get rid of whitespace like '\r\n'
print "The data is:",data
if data in id_values:
    try:
        cursor.execute("UPDATE 'ISEF_DB'.'attendance' SET 'present'='1' WHERE 'id' = '" + data + "'")
        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 {}".format(data)