cursor.execute() 没有将行上传到 sqlite 数据库
cursor.execute() not uploading rows to sqlite database
我构建了一个保存到 .csv 文件的抓取工具,现在正尝试使用 IF 语句将该 .csv 文件中的行保存到 sqlite3 数据库,但它不起作用。我试过用十几种不同的方式格式化这些值,但都无济于事。
"Match" 每次 IF 语句为 True 时都会打印,但该行不会添加到 sqlite 数据库中。调用 cur.fetchall()/one()/etc 会导致返回 'None'。
db = sqlite3.connect(':memory:')
cur = db.cursor()
cur.execute("DROP TABLE IF EXISTS jobs_table")
cur.execute('''CREATE TABLE IF NOT EXISTS
jobs_table(id TEXT,
date TEXT,
company TEXT,
position TEXT,
tags TEXT,
description TEXT,
url TEXT)''')
skills = ('python')
for row in csv_data:
if skills in row.get('description').lower():
print('')
print('Match!')
cur.execute("INSERT INTO jobs_table(id,
date,
company,
position,
tags,
description,
url) VALUES(:id,
:epoch,
:date,
:company,
:position,
:tags,
:description,
:url)", row)
我假设问题出在我的 cur.execute() 函数中,但我不知道它应该是什么 运行。有人要吗?
如果您在 cur.execute()
之后立即调用 cur.fetchone()
,则通常会得到 None
(或 []
以获得 cur.fetchall()
)。您需要先执行查询才能得到结果,例如 cur.execute("SELECT * FROM jobs_table")
.
我构建了一个保存到 .csv 文件的抓取工具,现在正尝试使用 IF 语句将该 .csv 文件中的行保存到 sqlite3 数据库,但它不起作用。我试过用十几种不同的方式格式化这些值,但都无济于事。
"Match" 每次 IF 语句为 True 时都会打印,但该行不会添加到 sqlite 数据库中。调用 cur.fetchall()/one()/etc 会导致返回 'None'。
db = sqlite3.connect(':memory:')
cur = db.cursor()
cur.execute("DROP TABLE IF EXISTS jobs_table")
cur.execute('''CREATE TABLE IF NOT EXISTS
jobs_table(id TEXT,
date TEXT,
company TEXT,
position TEXT,
tags TEXT,
description TEXT,
url TEXT)''')
skills = ('python')
for row in csv_data:
if skills in row.get('description').lower():
print('')
print('Match!')
cur.execute("INSERT INTO jobs_table(id,
date,
company,
position,
tags,
description,
url) VALUES(:id,
:epoch,
:date,
:company,
:position,
:tags,
:description,
:url)", row)
我假设问题出在我的 cur.execute() 函数中,但我不知道它应该是什么 运行。有人要吗?
如果您在 cur.execute()
之后立即调用 cur.fetchone()
,则通常会得到 None
(或 []
以获得 cur.fetchall()
)。您需要先执行查询才能得到结果,例如 cur.execute("SELECT * FROM jobs_table")
.