Моя работа тесно связана с очень большим объемом данных и из-за несовершенства отчетности, известной в узких кругах ПО, мне пришлось прибегнуть к изучению python, чтобы реализовать скрипт который позволит:
1. Узнать даты “сегодня” и “вчера”;
2. Подставить их, как переменные, в json-запрос;
3. Отправить json на сервер и получить ответ;
4. Записать результат в файл json;
5. Отсечь все лишнее в исходном json и записать результат в конечный csv;
6. Импортировать csv в БД postgres.
Все хорошо, кроме 6 пункта. Таблица в БД, как была пустой, так пустой и остается. Хотя при старте скрипта, я вижу, что БД реагирует, но результата нет.
Мой код для пункта 6:
import psycopg2 conn = psycopg2.connect("host='my.bd.ru' port='5432' dbname='test' user='admin' password='admin'") cur = conn.cursor() csv_out = 'csv_out.csv' sql = "copy public.table from STDIN delimiter ',' csv encoding 'UTF8'" cur.copy_expert(sql, open(csv_out, "r", encoding = 'utf-8')) cur.close() conn.close()
Вместо copy_expert пробовал также использовать:
cur.copy_from(f, 'public.table', sep=',')
upd.
Так же добавлю, что если этот csv заливать через psql \copy, то проблем нет. Все импортируется отлично.