2012-08-22 36 views
3

我用我的Python腳本在Sqlite數據庫中輸入數據類型字符串的變量。所以無論何時插入該值,我都會收到Sqlite錯誤:Python:從字符串變量轉義單引號和雙引號的一些特殊方法

sqlite3.OperationalError: near "s": syntax error 

我的變量string是這樣的:

file_path=r'James Bond 007 - 07 - On Her Majesty's Secret Service (1969)' 

其實我直接從os.walk得到這個文件名,所以我不能通過把反斜槓manually.I需要一些字符串的方法逃脫單串自動e掃描字符串內的內容。

回答

10

你做錯了。

cursor.execute("INSERT ... (?, ?, ?)", (var1, var2, var3)) 
+0

我已經寫了我的疑問正是這樣,你甲肝提及,但這個錯誤是因爲該變量。其中內轉義報價存在的我沒有找到任何方式來逃避它。 –

+1

+1:爲什麼人們仍然在沒有佔位符的情況下進行原始查詢構建? –

+0

@FlorianBrucker:容易,因爲可以讀取和理解含有SQL語句的文件,並且可以包含註釋。這對於二進制SQLite3數據庫來說有點難度。並且使用'sqlite3'命令行實用程序的'.dump'命令的效果也會去除任何註釋。爲什麼人們將*源代碼*檢入他們的版本控制系統而不是二進制文件?對我來說同樣的道理。 – 0xC0000022L

1

使用正斜槓似乎適用於我,但我對單引號沒有任何問題。

所以:

"\"this seems to work fine.\"" 
相關問題