sqlite3.OperationalError: около ".27": синтаксическая ошибка - PullRequest
0 голосов
/ 29 марта 2020

В последнее время я пытаюсь создать базу данных. (Я новичок в программировании) Когда я пытаюсь запустить следующий код, я получаю эту ошибку:

sqlite3.OperationalError: near ".27": синтаксическая ошибка

def file_write(self, name, value):                  
    con = sqlite3.connect("c:/Users/DB.db")
    cursor = con.cursor()
    cursor.execute("CREATE TABLE {} (Date text, Value1 int, Value2 int, Value3 int, Value4 int, Value5 int, Value6 float, Value7 float, Value8 float)".format(name))
    for i in range(3):
        cursor.execute("INSERT INTO {0} VALUES({1},{2},{3},{4},{5},{6},{7},{8},{9})".format(name, value[i][0], value[i][1], value[i][2], value[i][3], value[i][4], value[i][5], value[i][6], value[i][7], value[i][8]))
        #cursor.execute("INSERT INTO {0} VALUES({1},{2},{3},{4},{5},{6},{7},{8},{9})".format(name, '2020.03.27', '12500', '13100', '15100', '10950', '31323050', '10440.0', '10524.5', '45.0'))
    con.commit()
    con.close()

Значения - это DataFrame, а значения примечания совпадают с каждым value[i][j]. Я провел весь день с этой проблемой, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 29 марта 2020

Проблема с форматированием даты, это будет работать:

cursor.execute("INSERT INTO {0} VALUES('{1}',{2},{3},{4},{5},{6},{7},{8},{9})".format(name, '2020-03-27','12500', '13100', '15100', '10950', '31323050', '10440.0', '10524.5', '45.0'))

Подробнее о документации здесь: https://www.sqlite.org/datatype3.html#date_and_time_datatype

Также, как уже упоминалось в комментариях вы никогда не должны форматировать строки запроса самостоятельно. Ненадежные входные данные, отформатированные в sql запросах, сделают ваш код уязвимым для sql атак внедрения (подробнее здесь https://en.wikipedia.org/wiki/SQL_injection)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...