2011-07-13 41 views
0

從這個查詢另一個變量的類型......如何從SQL查詢

self.cur.execute("""SELECT pub FROM "20091229" 
       GROUP BY pub ORDER BY pub""") 

我得到的元組回到下面的列表。

>>[(1,), (2,), (3,)] 

但我只需要一個列表或列表中沒有小數點的元組。 的類似:

[1, 2, 3] 

[(1), (2), (3)] 

感謝。

+0

'[(1,),(2),(3,)]' - 這些都不是小數點(逗號)。這些是元組分隔符。 – eumiro

回答

1

如果你告訴我們你用什麼模塊來使用db會更好。另外我不知道,但你的查詢可以進行優化,以這樣的「SELECT DISTINCT酒館FROM‘20091229’ORDER BY酒館」

我知道,這裏沒有人喜歡減少,但它也可以用於此處

from operator import add 

reduce(lambda res,x: add(res, x), [(1,), (2,), (3,)]) 

OR的情況下有可能是僅單個項目的元組的列表:

from operator import itemgetter 
map(itemgetter(0), [(1,), (2,), (3,)]) 
+0

也許這不是解決問題的最好方法,但它起作用。 :)現在,我只是得到一個元組:(1,2,3)。 非常感謝。 –

+0

謝謝@The_Fox - 有很多方法可以在Python中做事情,而選擇最好的方式總是隻取決於你。 –

1

這是怎麼回事?

li = [tup[0] for tup in li] 

請注意,一個元組獲取的這樣寫的(1,),因爲(1)意味着數學括號。此外,似乎您正在嘗試打印一份清單,請考慮使用專用的打印功能。

+0

我需要一個列表,因爲我想在後面的sql查詢中使用這個列表作爲變量,並且小數點出現錯誤。 –

+0

@The_Fox:問題在於你正在使用'str(li)'。考慮正確格式化列表。 – orlp