Почему не создаются таблицы в БД Python - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь создать имя таблицы по дате

import requests, json, sqlite3

conn = sqlite3.connect('parser_all.sqlite', check_same_thread = False)
url = 'http://127.0.0.1:8000/api/reg/'

full_page = requests.get(url, auth=("admin","admin"))
pars=json.loads(full_page.content.decode('utf-8'))

a = []
for i in pars:
    a.append(i["date_visit"])

unique = list(set(a))

def get_registers(unique):
    for i in range(len(unique)):
        register =  unique[i]
        cursor = conn.cursor()
        with conn:
            cursor.execute('CREATE TABLE IF NOT EXISTS ' + register + ' (name STRING )')
        cursor.close()

get_registers(unique)

пример данных в ['13 -04-2020 ', '10 -04-2020'].

в конце я получаю ошибку

cursor.execute('CREATE TABLE IF NOT EXISTS ' + register + ' (name STRING )')
sqlite3.OperationalError: near "13": syntax error

1 Ответ

1 голос
/ 17 апреля 2020

В вашем случае SQL двигатель получает запрос:

CREATE TABLE IF NOT EXISTS 13-04-2020 (name STRING )

и возвращает ошибку, поскольку 13-04-2020 является выражением, а не допустимым именем таблицы

Вы можете исправить это с помощью таблицы кавычек имя как "13-04-2020":

cursor.execute('CREATE TABLE IF NOT EXISTS "' + register + '" (name STRING )')

DB Fiddle

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