2016-07-28 108 views
-1

我的目标是通读一堆现在在记录中的行。如果任何记录(行[1])的第二列在本例中等于133,则它会打印出第一列和第二列。我在这里做错了什么? IF和其他语句

我遇到了这个问题,但:

线11 - 其他:问题

import sqlite3 

conn = sqlite3.connect('db.sqlite') 
print "Opened database successfully"; 

cur = conn.execute("SELECT * FROM sightings") 
row = cur.fetchone() 
while row is not None: 
    if row[1] == 133: 
     print row[0], row[1] 
    else: 
     row = cur.fetchone(): 


cur.close() 

conn.close() 
+2

你收到了什么错误? – TheLazyScripter

+1

SQL!只需获取您需要的记录。 –

+0

如果找不到,我将转到下一条记录。 – Malorrr

回答

-1

我已经成功地与你们一些帮助解决它。谢谢!

import sqlite3 

conn = sqlite3.connect('db.sqlite') 
print "Opened database successfully"; 

cur = conn.execute("SELECT * FROM sightings WHERE column = 133") 
row = cur.fetchone() 

while row is not None: 

     print row[0], row[1], row[2], row[3], row[4], row[5], row[6] 
     row = cur.fetchone() 



cur.close() 

conn.close() 
1

你必须在声明的末尾一个额外的冒号,你不需要

if row[1] == 133: 
    print row[0], row[1] 
else: 
    row = cur.fetchone(): <---- 

应..

if row[1] == 133: 
    print row[0], row[1] 
else: 
    row = cur.fetchone()