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").