我在嘗試將sqlite查詢傳遞給另一個函數時遇到問題。如何解壓可能包含列表的元組
的問題是,SQLite的查詢可能包含一個列表,因此它解壓縮的元組,但隨後忽略列表我不能使用*args
,例如查詢我試圖傳遞給函數:
'SELECT postname FROM history WHERE postname = ? COLLATE NOCASE', [u'Test']
所以在這種情況下,我可以在目標函數中使用args
而不是*args
,但是我可能有一個不包含列表的sqlite查詢,因此我不能總是這樣做,例如
'SELECT * FROM history'
,所以我想我簡而言之問題是我怎麼能成功地通過一個SQLite查詢是否含有列表或不使用ARGS另一個函數?
我會爭辯最好的答案(如果可能的話)是確保你總是得到一個元組。記住你可以得到長度爲1的元組 - 「'(」SELECT * FROM histroy「),''可以完美地工作。 –
@Lattyware - 爲什麼不作爲回答發佈?我不知道sqlite,否則我可能會有一些貢獻,但如果你說的是正確的,它確實看起來像是比我更好的解決方案。 – mgilson
嗨Lattyware,我已經嘗試過你的解決方案,但是sqlite不能使用元組,我得到了錯誤ValueError:操作參數必須是str或unicode,因此我回到了無法解壓元組的問題,因爲我鬆開了列表。 – Paul