SQLite3請求不起作用我創建了一個python腳本來創建一個帶有一個表的sqlite3數據庫。該表由2列組成:一個用於id(int),另一個用於關聯的句子(文本)。下面是代碼:
由於'character
#!/usr/bin/python
import sqlite3
i=0
con = sqlite3.connect("database.db")
cur = con.cursor()
cur.execute('''CREATE TABLE data(data_id int, sentence text)''')
with open("data.txt", "r") as ins:
for line in ins:
i = i + 1
cur.execute("insert into data(data_id, sentence) values ("+str(i)+",'"+line+"')")
con.commit()
con.close()
正如你所看到的,這個代碼將讀取該文件data.txt中是包含在每一行句子的文件。
當我嘗試執行腳本,我得到這個錯誤:
Traceback (most recent call last):
File "scriptData.py", line 13, in <module>
cur.execute("insert into data(data_id, sentence) values ("+str(i)+",'"+line+"')")
sqlite3.OperationalError: near "che": syntax error
這是由於這樣的事實,在我的文件data.txt中,一些線路有「文字這是一個問題。我試圖通過在data.txt文件中執行'\'來保護這個字符,但它不起作用。
問題是我需要在我的句子中保留'。我不是一個Python程序員,所以我的知識非常有限。你有任何想法使這個腳本工作?
_DO不連接的數據到查詢;使用查詢參數!_'cur.execute(「INSERT INTO ... VALUES(?,?)」,(i,line))' –
否則有人可能會給你一個關於他們的兒子Bobby的句子。 –
擴大Chads評論:[媽媽的漏洞](https://xkcd.com/327/) – Matthias