Невозможно вставить данные в базу данных sqlite3 с помощью Python - PullRequest
4 голосов
/ 29 июля 2009

Я могу успешно использовать 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 ]

20 голосов
/ 29 июля 2009

Попробуйте добавить

db.commit()

после вставки.

4 голосов
/ 29 июля 2009

Для вставки данных вам не нужен курсор

просто используйте БД

db.execute () вместо c.execute () и избавиться от строки c = db.cursor ()

Курсоры используются не для вставки данных, а обычно для чтения или обновления данных на месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...