Как скопировать файл CSV в таблицу PostgreSQL с заголовками (включая специальные символы) в файле CSV? - PullRequest
0 голосов
/ 30 марта 2020

У меня 500 разных файлов CSV в папке.

Я хочу взять файл CSV и импортировать его в таблицу Postgres.

В csv есть неизвестное количество столбцов, поэтому я не хочу продолжать открывать файл CSV, затем создавать таблицу и затем импортировать, используя \copy

Я знаю, что могу сделать это:

COPY users FROM 'user_data.csv' DELIMITER ';' CSV HEADER

Однако файл CSV выглядит примерно так:

user_id,5username,pas$.word
1,test,pass
2,test2,query

Я должен преобразовать его в postgres, но postgres не позволяет имени столбца начинаться с цифры или специального такие символы, как . и $ в имени столбца.

Я хочу, чтобы таблица postgres выглядела примерно так:

user_id     ___5username      pas______word
1           test              pass
2           test2             query

Я хочу заменить специальные символы на ___ а если имя столбца начинается с цифры, то с префиксом ___.

Есть ли способ сделать это? Я открыт для решения Python или Postgres.

1 Ответ

0 голосов
/ 30 марта 2020

Если pandas является вариантом для вас, попробуйте:

  1. Создать фреймы данных из файлов CSV с помощью .read_csv()
  2. Сохранить созданные фреймы данных в SQL базе данных с .to_sql()

Вы также можете увидеть мой учебник по pandas IO API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...