Запрос файла базы данных SQLite в Google Colab

print ('Files in Drive:')

!ls drive/AI

Файлы на Диске:

database.sqlite
Reviews.csv
Untitled0.ipynb
fine_food_reviews.ipynb
Titanic.csv

Когда я запускаю приведенный выше код в Google Colab, очевидно, что мой файл sqlite присутствует на моем диске. Но всякий раз, когда я запускаю какой-либо запрос к этому файлу, он говорит

# using the SQLite Table to read data.
con = sqlite3.connect('database.sqlite') 

#filtering only positive and negative reviews i.e. 
# not taking into consideration those reviews with Score=3
filtered_data = pd.read_sql_query("SELECT * FROM Reviews WHERE Score !=3",con)

DatabaseError: Execution failed on sql 'SELECT * FROM Reviews WHERE Score != 3 ': no such table: Reviews

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
5 349
5

Ответы 5

Попробуйте вместо этого. Посмотрите, какие там таблицы.

"SELECT name FROM sqlite_master WHERE type='table'"

filter_data = pd.read_sql_query ("SELECT name FROM sqlite_master WHERE type = 'table'", con) print (filter_data) дает мне "Пустые столбцы DataFrame: [имя] Индекс: []"

Vishal Pandey 23.05.2018 09:17

Таким образом, он может читать таблицу, но таблица пуста. Теперь вы можете попробовать убедиться, что в файле sqlite есть таблица отзывов с правильными данными.

korakot 23.05.2018 12:23

присвойте файлу базы данных такой же общий идентификатор, как и в случае с Reviews.csv.

database_file = drive.CreateFile ({'id': 'your_sharable_id для файла sqlite'}) файл_базы_данных.GetContentFile ('database.sqlite')

Если вы пытаетесь получить доступ к файлам со своего диска Google, вам необходимо сначала смонтировать диск:

from google.colab import drive
drive.mount('/content/drive')

После этого щелкните правой кнопкой мыши файл, который вы собираетесь читать в сеансе colab, выберите «Копировать путь» и вставьте его в строку подключения.

con = sqlite3.connect('/content/database.sqlite')

Теперь вы можете прочитать файл.

con = sqlite3.connect('database.sqlite')
filtered_data = pd.read_sql_query("SELECT * FROM Reviews WHERE Score !=3",con)

Если вы выполните его дважды, вы обязательно закончите с этим типом ошибки. Выполните его ровно один раз без каких-либо сбоев.

Если вы получите какую-либо ошибку, удалите

database.sqlite

этот файл и извлеките его снова. На этот раз выполните его снова без сбоев / ошибок. Это сработало для меня.

Ниже вы найдете код для db setup on the Colab VM, table creation, data insertion и data querying. Выполните все фрагменты кода в отдельных ячейках записной книжки.

Однако обратите внимание, что этот пример показывает только, как выполнить код на непостоянной виртуальной машине Colab. Если вы хотите сохранить свою базу данных в GDrive, вам сначала нужно смонтировать Gdrive (источник):

from google.colab import drive
drive.mount('/content/gdrive')

и перемещаться в соответствующий файловый каталог после.


Шаг 1. Создайте БД

import sqlite3

conn = sqlite3.connect('SQLite_Python.db')  # You can create a new database by changing the name within the quotes
c = conn.cursor() # The database will be saved in the location where your 'py' file is saved

# Create table - CLIENTS
c.execute('''CREATE TABLE SqliteDb_developers
             ([id] INTEGER PRIMARY KEY, [name] text, [email] text, [joining_date] date, [salary] integer)''')

conn.commit()

Проверьте, успешно ли была создана БД:

!ls

Выход:

sample_data SQLite_Python.db


Шаг 2: вставьте данные в БД

import sqlite3

try:
    sqliteConnection = sqlite3.connect('SQLite_Python.db')
    cursor = sqliteConnection.cursor()
    print("Successfully Connected to SQLite")

    sqlite_insert_query = """INSERT INTO SqliteDb_developers
                          (id, name, email, joining_date, salary) 
                           VALUES (1,'Python','[email protected]','2020-01-01',1000)"""


    count = cursor.execute(sqlite_insert_query)
    sqliteConnection.commit()
    print("Record inserted successfully into SqliteDb_developers table ", cursor.rowcount)
    cursor.close()

except sqlite3.Error as error:
    print("Failed to insert data into sqlite table", error)
finally:
    if (sqliteConnection):
        sqliteConnection.close()
        print("The SQLite connection is closed")

Выход:

Successfully Connected to SQLite

Record inserted successfully into SqliteDb_developers table 1

The SQLite connection is closed


Шаг 3: запросить БД

import sqlite3

conn = sqlite3.connect("SQLite_Python.db")

cur = conn.cursor()
cur.execute("SELECT * FROM SqliteDb_developers")

rows = cur.fetchall()

for row in rows:
  print(row)

conn.close()

Выход:

(1, 'Python', '[email protected]', '2020-01-01', 1000)

Другие вопросы по теме