无法使用Python将数据插入sqlite3数据库

时间:2009-07-29 16:36:24

标签: python sqlite

我可以成功使用Python创建数据库并运行execute()方法来创建2个新表并指定列名。但是,我无法将数据插入数据库。这是我试图用来将数据插入数据库的代码:

#! /usr/bin/env python

import sqlite3

companies = ('GOOG', 'AAPL', 'MSFT')

db = sqlite3.connect('data.db')
c = db.cursor()

for company in companies:
    c.execute('INSERT INTO companies VALUES (?)', (company,))

以下是我使用以下代码成功创建数据库的代码:

#! /usr/bin/env python

import sqlite3

db = sqlite3.connect('data.db')

db.execute('CREATE TABLE companies ' \
      '( '\
      'company varchar(255) '\
      ')')

db.execute('CREATE TABLE data ' \
      '( '\
      'timestamp int, '\
      'company int, '\
      'shares_held_by_all_insider int, '\
      'shares_held_by_institutional int, '\
      'float_held_by_institutional int, '\
      'num_institutions int '\
      ')')

2 个答案:

答案 0 :(得分:20)

尝试添加

db.commit()

插入后。

答案 1 :(得分:4)

要插入数据,您不需要光标

只需使用db

db.execute()而不是c.execute()并摆脱c = db.cursor()行

游标不用于插入数据,但通常用于读取数据或更新数据。