В данной статье я поделюсь рецептом загрузки таблицы в базу данных с использованием языка Python. Вся трудная работа будет переложена на плечи этого гибкого инструмента, а вы будете пользоваться только его привычными и мощными библиотеками.
Рассмотрим задачу на примере системы управления базой данных PostgreSQL. Для взаимодействия с ней будем использовать библиотеку psycopg2 (как это делать рассказывал ранее), а для чтения таблицы из файла (данные о пассажирах Титаника) - библиотеку Pandas (рассказывал ранее ).
Создание таблицы
На данном этапе наша задача заключается в формировании строки запроса на создание новой таблицы. Для этого потребуется задать ей имя (table_name в сценарии ниже), а также заключенную в круглые скобки строку с перечислением через запятую пар вида - имя столбца тип столбца. Последние получим с помощью Pandas, а именно свойства dtypes, которое для DataFrame возвращает объект Series с индексом в виде названий столбцов и значениями в виде их типов.
Также построим словарь соответствий типов из таблицы Pandas и таблицы в базе данных (types_pd2sql, возможно, вам потребуется его дополнить) и напишем функцию, трансформирующую первый во второй (conv_type). У меня получился следующий сценарий:
Заполнение таблицы
Как и раньше, основная задача - сформировать корректную строку запроса. Основной проблемой являются отсутствующие данные, из-за чего потребуется в INSERT вводить не только значения, но и названия столбцов. Также для строковых полей нужно обрамлять значения в одинарные кавычки (соответственно, внутренние одинарные заменять на двойные).
Теперь смотрим, как будет выглядеть наша таблица в базе данных:
Вот такой способ загрузки в базу данных таблицы из файла получился у меня. А какими инструментами пользуетесь вы?