Какую функцию я могу использовать для адаптации значений для подходящего использования в инструкции COPY FROM
? Я попробовал эту функцию adapt
:
from psycopg2.extensions import adapt
Тем не менее, это дает неправильную вещь для datetimes (добавляет ::timestsamp
в строку, postgres не нравится) и string (обертывает их в одинарные кавычки, например, пустая строка - это '', где, похоже, кавычки не должны использоваться),
Вам не следует использовать adapt
с помощью copy_from
.
copy_from
ожидает формат, отличный от цитирования SQL.
Для строк я бы предложил написать собственную функцию copy_adapt
, которая должна избегать вкладок с \t
, CR с \r
и LF с \n
.
Значения для столбцов timestamp/date должны быть отформатированы (с strftime?), Как строка, которую вы видите при SELECT now()
в Postgres.
Элементы кортежа должны быть разделены вкладками, а целые кортежи завершены новой строкой.