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