Я создал скрипт python для создания базы данных sqlite3 с одной таблицей. Эта таблица состоит из 2 столбцов: одна для id (int), а другая для связанного предложения (текста). Вот код:
SQLite3 запрос не работает из-за '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, но это не сработало.
Проблема в том, что мне нужно держать «в моих предложениях». Я не программист на питоне, поэтому мои знания очень ограничены. Есть ли у вас идея заставить этот скрипт работать?
_DO не конкатенации данных в запросах; используйте параметры запроса! _ cur.execute («INSERT INTO ... VALUES (?,?)», (i, line)) ' –
В противном случае кто-то может дать вам предложение об их сыне Бобби .. –
Чтобы расширить комментарий Chads : [Exploits of a mom] (https://xkcd.com/327/) – Matthias