В этом уроке вы узнаете, как импортировать данные из CSV-файла в таблицу из программы Python.
Это руководство начинается с того места, где закончилась вставка данных в таблицу SQL Server из руководства по программе Python.
Подготовка CSV-файла
Шаг 1. Создайте новый каталог в каталоге проекта с именем data.
Шаг 2. Скопируйте следующий файл authors.csv, содержащий данные об авторах для каталога данных:
Файл authors.csv содержит три столбца, включая имя, фамилию и дату рождения:
First Name,Last Name,Birth Date Robin,Calderon,1977-06-12 David,Hunter,1983-08-01 Craig,Hart,1991-12-13 ...
Чтение данных из CSV-файла
Шаг 1. Создайте новый модуль с именем utils.py.
Шаг 2. Определите функцию read_csv, которая считывает данные из CSV-файла, указанного именем файла, и возвращает кортеж:
import csv def read_csv(filename:str) -> tuple: with open(filename, 'r') as f: reader = csv.reader(f) next(reader) # skip the header return [tuple(row) for row in reader]
Как это работает.
Сначала откройте CSV-файл:
with open(filename, 'r') as f:
Во-вторых, CSV-файл построчно:
reader = csv.reader(f)
В-третьих, пропустите заголовок:
next(reader) # skip the header
Наконец, преобразуйте каждую строку в кортеж, прежде чем возвращать все строки в виде списка кортежей.
return [tuple(row) for row in reader]
Импорт данных в таблицу
Шаг 1. Создайте новый модуль import_author.py в каталоге проекта:
Шаг 2. Определите функцию import_author_from_csv для импорта данных из CSV-файла и вставьте каждую строку в таблицу Authors:
from insert import insert_author from utils import read_csv def import_author_from_csv(filename: str) -> None: authors = read_csv(filename) for author in authors: insert_author(*author)
Как это работает.
Сначала импортируйте функцию вставки из модуля insert_author и функцию read_csv из модуля utils:
from insert import insert_author from utils import read_csv
Во-вторых, считайте данные из CSV-файла, указанного в имени файла, с помощью функции read_csv:
authors = read_csv(filename)
Функция read_csv возвращает список кортежей, каждый из которых содержит имя, фамилию и дату рождения автора.
В-третьих, вставьте каждого автора в таблицу Authors, вызвав функцию insert_author:
for author in authors: insert_author(*author)
Шаг 3. Измените файл main.py, чтобы использовать функцию import_author_from_csv для импорта данных из ./data/authors.csv в таблицу Authors:
import logging, sys from import_author import import_author_from_csv # config logging to console logging.basicConfig( stream=sys.stdout, encoding='utf-8', format='%(levelname)s:%(message)s', level=logging.DEBUG ) # import data from csv file import_author_from_csv('./data/authors.csv')
Шаг 4. Откройте терминал и выполните файл main.py:
python main.py
Шаг 5. Проверка импорта
Откройте SQL Server Management Studio(SSMS), подключитесь к SQL Server и выполните следующий запрос:
SELECT * FROM Authors;
Выход:
Загрузите исходный код проекта
Загрузите исходный код проекта
Краткое содержание
- Используйте модуль csv для чтения данных из CSV-файла.
- Выполните оператор INSERT, чтобы вставить каждую строку CSV-файла в таблицу.