Python кодирование для SQLite не заполняет базу данных - PullRequest
0 голосов
/ 16 февраля 2020

Я нашел в Интернете учебник, который позволит пользователю вводить mov ie в командной строке, и он будет искать IMDB и возвращать всю информацию. Это работает.

Поэтому я решил, что хочу иметь возможность импортировать данные mov ie в базу данных SQLite. База данных создается с таблицей, но не получает информацию, и я не получаю ошибку. Вот что у меня есть.

Вот код SQLite:

import sqlite3
from sqlite3 import Error
def sql_connection():
    try:
        con=sqlite3.connect('movies.db')
        return con
    except Error:
        print(Error)

def sql_table(con):
    cursorObj=con.cursor()
    cursorObj.execute("CREATE TABLE movies(id integer PRIMARY KEY,\ 
    tite text, year integer, full cast text, rating integer, plot \
    text )")

    con.commit()
con=sql_connection()
sql_table(con)

def sql_insert(con,entities):
    cursorObj=con.cursor()
    cursorObj.execute('INSERT INTO movies(id, title, year of \
    release, full cast, rating, cast) VALUES(?,?,?,?,?,?)',entities)\
    con.commit()
sql_insert(con,entities)
con.close()

1 Ответ

0 голосов
/ 16 февраля 2020

Я вижу ошибки:

Опечатка: tite вместо title in:

cursorObj.execute("CREATE TABLE movies(id integer PRIMARY KEY,\ 
tite text, year integer, full cast text, rating integer, plot \
text )")

Во втором утверждении вы пытаетесь обновить поле year of release, чтобы не существует (вы назвали его year ранее).

cursorObj.execute('INSERT INTO movies(id, title, year of \
release, full cast, rating, cast) VALUES(?,?,?,?,?,?)',entities)\
con.commit()

Если вы собираетесь использовать имена столбцов, содержащие пробелы, вам понадобятся обратные галочки или квадратные скобки, чего я бы избегал. Поэтому вместо full cast я бы использовал символ подчеркивания (_), чтобы избежать пробелов: full_cast. Но в своем заявлении create вы назвали поле cast, поэтому вставка не будет работать.

...