Проблема с Python copy_expert при загрузке данных с нулями - PullRequest
0 голосов
/ 17 июня 2019

Я не могу импортировать CSV в таблицу в Postgres, используя copy_expert.Ошибка связана с нулевыми значениями.

Мой тип поля в db - разрешить пустые значения.Вставка вручную с помощью вставки в файл оказывается успешной

Исходя из того, что я до сих пор понимал, это происходит потому, что copy_expert преобразует значения NULL в текст, поэтому происходит сбой в типе метки времени.Тем не менее, я не могу найти правильный синтаксис, чтобы привести к нулевым значениям.Ниже приведен фрагмент кода:

with open(ab, 'r') as f:
    cur.copy_expert("""COPY client_marketing (field1,field2,field3) FROM STDIN DELIMITER ',' CSV HEADER""", f)

Сообщение об ошибке:

DataError: неверный синтаксис ввода для отметки времени типа: "".Оцените любую помощь по сценарию или указание на правильные источники для чтения.

1 Ответ

0 голосов
/ 17 июня 2019

Я смог сделать это, добавив force_null (column_name).Например, если field3 - ваша временная метка:

copy client_marketing (field1, field2, field3) from stdin with (
    format csv,
    delimiter ',',
    header,
    force_null (field3)
);

Надеюсь, это поможет.Смотри https://www.postgresql.org/docs/10/sql-copy.html

...