2017-04-17 17 views
-1

我試圖從表中獲取或打印數據,其中一列具有相同的數據。如何使用python中的sqlite3打印列中具有相同數據的表中的數據

我會更清楚。

這是表

Name  Team  Task  Status 
John  A   shgdjd  Awaiting 
Sam  B   jhdhfc  Awaiting 
Jerry  C   hscdusc Accepted 
Roy  A   jdshdjc Awaiting 

我需要打印只這些,因爲他們有狀態= 「等待」

Name: John Team: A Task:shgdjd 
Name: Sam Team: B Task:jhdhfc 
Name: Roy Team: C Task: hscdusc 

所以我寫如下,

import sqlite3 
conn = sqlite3.connect("practice.db") 
c = conn.cursor() 
requests = c.execute("SELECT Name, Team, Task, Status from Request_Info") 
for column in requests: 
    if "Status" == "Awaiting": 
     print "Name: ", column[0] 
     print "Team: ",column[1] 
     print "Task: ", column[2] 

但是,我沒有得到任何輸出。任何人都可以請幫我從中得到解決。

回答

0

你可以通過詞典光標來做到這一點。

您需要訪問字典的鍵像這樣

column["Status"]

所以,你的代碼應該是這樣的。

import sqlite3 
conn = sqlite3.connect("practice.db") 
conn.row_factory = sqlite3.Row 
c = conn.cursor() 
requests = c.execute("SELECT Name, Team, Task, Status from Request_Info") 
for column in requests: 
    if column["Status"] == "Awaiting": 
     print "Name: ", column[0] 
     print "Team: ",column[1] 
     print "Task: ", column[2] 

或者,我相信你能做到這一點,如果你叫column[3]

import sqlite3 
conn = sqlite3.connect("practice.db") 
c = conn.cursor() 
requests = c.execute("SELECT Name, Team, Task, Status from Request_Info") 
for column in requests: 
    if column[3] == "Awaiting": 
     print "Name: ", column[0] 
     print "Team: ",column[1] 
     print "Task: ", column[2] 
0

您可以過濾和呼叫僅具有狀態記錄爲「等待」

import sqlite3 
conn = sqlite3.connect("practice.db") 
c = conn.cursor() 
requests = c.execute("SELECT Name, Team, Task from Request_Info WHERE Status = 'Awaiting'") 
for column in requests: 
    print "Name: ", column[0] 
    print "Team: ",column[1] 
    print "Task: ", column[2] 

這樣您不必檢查for循環中每個記錄的狀態

相關問題