/
antonnovom
/
hw_bit
Обзор
Документация
Войти
/
antonnovom
/
hw_bit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
LAB5/scripts/db_utils.py
40 строк
1 KB
antonnovom
upload files
06 май 2025, 18:08
06 май 2025, 18:08
07681f8
Код
Авторство
О чём код?
import os import psycopg2 from psycopg2.extras import execute_values from dotenv import load_dotenv load_dotenv() DB_PARAMS = { 'dbname': os.getenv('PICODATA_DB'), 'user': os.getenv('PICODATA_USER'), 'password': os.getenv('PICODATA_PASSWORD'), 'host': os.getenv('PICODATA_HOST'), 'port': os.getenv('PICODATA_PORT'), } def get_connection(): """Устанавливает соединение с Picodata""" return psycopg2.connect(**DB_PARAMS) def insert_rates(records): """ Вставляет список кортежей (id, symbol, price_usd, timestamp) в таблицу rates. В случае конфликта по PK — пропускает дубликаты. """ sql = """ INSERT INTO rates (id, symbol, price_usd, timestamp) VALUES %s ON CONFLICT (id) DO NOTHING; """ conn = get_connection() try: with conn.cursor() as cur: execute_values(cur, sql, records) conn.commit() except Exception as e: conn.rollback() print(f"Ошибка вставки: {e}") raise finally: conn.close()