postgresql + python: как адаптировать для copy_from?

1

Какую функцию я могу использовать для адаптации значений для подходящего использования в инструкции COPY FROM? Я попробовал эту функцию adapt:

from psycopg2.extensions import adapt

Тем не менее, это дает неправильную вещь для datetimes (добавляет ::timestsamp в строку, postgres не нравится) и string (обертывает их в одинарные кавычки, например, пустая строка - это '', где, похоже, кавычки не должны использоваться),

Теги:
database
sqlbulkcopy

1 ответ

1
Лучший ответ

Вам не следует использовать adapt с помощью copy_from.

copy_from ожидает формат, отличный от цитирования SQL.

Для строк я бы предложил написать собственную функцию copy_adapt, которая должна избегать вкладок с \t, CR с \r и LF с \n.

Значения для столбцов timestamp/date должны быть отформатированы (с strftime?), Как строка, которую вы видите при SELECT now() в Postgres.

Элементы кортежа должны быть разделены вкладками, а целые кортежи завершены новой строкой.

  • 0
    Как я узнаю, как конвертировать datetime в формат, который принимает Postgres?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню