2017-04-12 62 views
0

試圖自學Python和Sqlite,我的腦袋正在旋轉。如何從結果中「清理」查詢的輸出以去除所有括號,逗號等等。還想.title()第二欄。例如:清理Python中的sqlite查詢

def get_all_bdays(self): 
    print("\n" * 100) 
    print("The birthdays we know about are: ") 
    self.c.execute('SELECT * FROM birthdays') 
    for row in self.c.fetchall(): 
     print(row) 

結果在下面的輸出:

The birthdays we know about are: 
(1, 'joe smoe', '12-12-1212') 

一個人如何去重新格式化那些亂七八糟的東西,如:

The birthdays we know about are: 
1. Joe Smoe 12-12-1212 

我的最終目標是建立一個盤點系統爲我的小企業,我的員工可以用來找到backstock項目位於我的庫房。考慮使用Flask來做類似的事情,但是我離這個時間點還有很長的路要走。

回答

3

每一行是一個有三個元素的元組:號碼,姓名和生日。 print(row)正在輸出帶有所有括號和引號的元組,而不是任何格式化的版本。

在Python中,你可以解構元組,並指定了它的部分不同的變量,然後格式化使用Python的語法printf樣的格式:

for row in self.c.fetchall(): 
    number, name, date = row 
    print("%d. %s on %s" % (number, name.title(), date)) 

甚至:

for number, name, date in self.c.fetchall: 
    print("%d. %s on %s" % (number, name.title(), date)) 
+0

ZBW ,這工作很好。謝謝! – Biggen

1

當你print(row)你得到row的Python代表,其中包括引號和逗號等。你想要做的是將數據str.format到任何你喜歡的形狀:

fmt = "{0}. {1}, on {2}" 
for row in self.c.fetchall(): 
    print(fmt.format(*row))