2015-08-31 50 views
1

我在树莓派上第一次使用python。从SQL查询结果中设置python变量

我有一个脚本查询SQL表并返回设置的值。

我无法工作的是从结果中设置python变量。

下面是代码的一部分,我有

# execute SQL query using execute() method. 
cursor.execute("select id from wallboard") 

# Fetch a single row using fetchone() method. 
data = cursor.fetchone() 

# disconnect from server 
db.close() 

result = str("%s " % data) 
print result 

if result == 1: 

打印显示的结果不错,但它不会进入if语句。

我对python很新,所以它可能是一个简单的修复,但我很难过。

感谢

回答

4

不要将结果转换为字符串:

>>> "1" == 1 
False 

还要注意的是fetchone()会回报你这将被表示为一个元组结果的单行 - 得到的第一个项目得到实际的id列值:

result = cursor.fetchone()[0] 
+0

注意在Python中键入(取决于你来自这可能有点奇怪)。使用Pythons的'''type(var)''' - 我在早期版本中仍然有这些语句。还有一个关键是'''isinstance()'''来确定是一种字符串/类/ etc还是特定类名称的实例。 –

+0

@ BK435该建议完全是特定用例。 OP比较返回整数id的SQL查询的结果和整数“1”。制作中间字符串没有意义。 – alecxe