У меня есть база данных sqlite3, где первым столбцом является идентификатор, который установлен в качестве первичного ключа с автоматическим увеличением. Я пытаюсь вставить значения из моего словаря Python как таковые:
value = {'host': [], 'drive': [], 'percent': []}
soup = bs(contents, 'html.parser')
for name in soup.find_all("td", class_="qqp0_c0"):
hostname = name.parent.find('td').get_text()
drive = name.parent.find('td', class_="qqp0_c1").get_text()
used_percent = name.parent.find('td', class_="qqp0_c5").get_text()
value['host'].append(hostname)
value['drive'].append(drive)
value['percent'].append(used_percent)
#cur.executemany("INSERT INTO scrap VALUES (?, ?, ?)", hostname, drive, used_percent)
cur.execute("INSERT INTO scrap VALUES (?, ?, ?);", value)
Я продолжаю получать ошибки. Судя по моей последней ошибке, требуется значение идентификатора:
cur.execute("INSERT INTO отходы VALUES (?, ?, ?);", value)
sqlite3.OperationalError: в вырезке таблицы есть 4 столбца, но было предоставлено 3 значения
Нужно ли мне указывать идентификационный номер?
Это схема базы данных:
CREATE TABLE scrap (
id INTEGER PRIMARY KEY AUTOINCREMENT,
hostname VARCHAR(255),
drive VARCHAR(255),
perc VARCHAR(255)
);
Подробнее здесь: https://stackoverflow.com/questions/704 ... to-sqlite3