У меня есть скрипт на python, который в основном имеет этот рабочий процесс
- Получить CSV с заголовком.
- Создать таблицу в базе данных на PostgreSQL, где поля являются заголовками csv.
- Скопируйте данные csv в таблицу, созданную в шаге 2
здесь фрагмент кода шага 3
file_object = open(file_csv)
cur = connection.cursor()
copy_sql = """
COPY %sFROM stdin WITH CSV HEADER
DELIMITER as '""" + delimiter +"'"
cur.copy_expert(sql=copy_sql % table,file = file_object)
connection.commit()
cur.close()
Этот скрипт работает нормально, но некоторые входные данные csv имеют последние столбцы без заголовка, и приведенный выше код завершается ошибкой
Файл "copy_to_psql.py", строка 18, в load_csv_psql
cur.copy_expert(sql=copy_sql % table,file = file_object)
psycopg2.DataError: дополнительные данные после последнего ожидаемого столбца
Есть ли способ выбрать только столбцы с заголовками из CSV?
Есть ли какое-либо решение, использующее только PostgreSQL?
Есть еще какие-нибудь предложения?
Заранее спасибо