Для многих приложений часто требуется загрузить данные из CSV или Excel-файла в базу данных. В этой статье рассмотрим, как это сделать для базы данных SQLite с помощью Python.
Для работы с CSV файлами в Python можно использовать встроенный модуль csv.
import csv
import sqlite3
def import_csv_to_sqlite(csv_filename, db_name, table_name):
# Создаем соединение и курсор для работы с SQLite
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
# Открываем CSV файл
with open(csv_filename, 'r') as file:
reader = csv.reader(file)
# Получаем заголовки из первой строки
headers = next(reader)
cursor.execute(f"CREATE TABLE {table_name} ({', '.join(headers)});")
# Вставляем данные
for row in reader:
cursor.execute(f"INSERT INTO {table_name} VALUES ({', '.join(['?' for _ in row])});", row)
conn.commit()
conn.close()
# Пример использования
import_csv_to_sqlite('data.csv', 'database.db', 'data_table')
Для работы с Excel файлами рекомендуется использовать библиотеку openpyxl для xlsx или xlrd для xls.
import sqlite3
from openpyxl import load_workbook
def import_xlsx_to_sqlite(xlsx_filename, db_name, table_name):
# Создаем соединение и курсор для работы с SQLite
conn = sqlite3.connect(db_name)
cursor = conn.cursor()
# Загружаем xlsx файл
workbook = load_workbook(xlsx_filename)
sheet = workbook.active
# Получаем заголовки
headers = [cell.value for cell in sheet[1]]
cursor.execute(f"CREATE TABLE {table_name} ({', '.join(headers)});")
# Вставляем данные
for row in sheet.iter_rows(min_row=2, values_only=True):
cursor.execute(f"INSERT INTO {table_name} VALUES ({', '.join(['?' for _ in row])});", row)
conn.commit()
conn.close()
# Пример использования
import_xlsx_to_sqlite('data.xlsx', 'database.db', 'data_table')
Примечание: Учтите, что данный код предполагает, что первая строка каждого файла (CSV или XLSX) содержит заголовки колонок. Если это не так, вам потребуется немного адаптировать код под вашу ситуацию.
Несколько дополнительных заметок и предостережений:
Python предоставляет мощные инструменты для работы с различными форматами данных и базами данных. Используя приведенные выше примеры, вы можете легко импортировать данные из CSV или Excel файлов в базу данных SQLite. Если у вас есть специфические требования или сложные структуры данных, вам, возможно, придется немного адаптировать приведенный код.
Содержание: