Skip to main content
 首页 » 编程设计

python之由于 ' 字符,SQLite3 请求不起作用

2025年05月04日14lexus

我创建了一个 python 脚本来创建一个带有一个表的 sqlite3 数据库。该表由两列组成:一列用于 id (int),另一列用于关联的句子(文本)。这是代码:

#!/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 程序员,所以我的知识非常有限。你有什么想法让这个脚本起作用吗?

请您参考如下方法:

当你将参数传递给 SQL 查询时,你需要使用转义来防止这种情况:

cur.execute("insert into data(data_id, sentence) values (?, ?)", (i, line))