【发布时间】:2022-01-21 16:33:10
【问题描述】:
我有一个 sqlite3 数据库,其中第一列是 id 并设置为具有自动增量的主键。我正在尝试从我的 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)
我不断收到错误,我最近的错误似乎暗示它需要一个id 值:
cur.execute("INSERT INTO scrap VALUES (?, ?, ?);", value) sqlite3.OperationalError: table scrap 有 4 列,但提供了 3 个值
我需要提供id 号码吗?
这是数据库架构:
CREATE TABLE scrap (
id INTEGER PRIMARY KEY AUTOINCREMENT,
hostname VARCHAR(255),
drive VARCHAR(255),
perc VARCHAR(255)
);
【问题讨论】:
-
什么是
CREATE语句,用于创建您尝试将INSERT放入的表?如果传递 4 个值会发生什么?如果该列正确设置为自动增量,您应该可以只传递 3 个值。 -
不知道该怎么做
标签: python-3.x sqlite