пасрсинг без изменение логики
parent
0cf7b9f6d2
commit
ffd2f13643
|
|
@ -4,8 +4,8 @@ from dateutil import parser
|
|||
|
||||
def parse_data_for_bd(dict_data: dict) -> list[list]:
|
||||
"""
|
||||
Фуннкция приминмает словарь и парсит его в лист листов
|
||||
для передачи в БД. Каждый лист должен состоять из 6 элементов
|
||||
Фуннкция приминмает словарь и парсит его в лист листов.
|
||||
Каждый лист должен состоять из 6 элементов
|
||||
"""
|
||||
result_list = []
|
||||
for key_id, value_data in dict_data.items():
|
||||
|
|
@ -15,13 +15,11 @@ def parse_data_for_bd(dict_data: dict) -> list[list]:
|
|||
# Парсим даты
|
||||
if date_from_str:
|
||||
date_from = parser.parse(date_from_str).date()
|
||||
#date_from = str(date_from.strftime('%d.%m.%Y'))
|
||||
else:
|
||||
print(f"Отсутсвует дата: {key_id}: {organ} {names}")
|
||||
continue
|
||||
if date_to_str:
|
||||
date_to = parser.parse(date_to_str).date()
|
||||
#date_to = str(date_to.strftime('%d.%m.%Y'))
|
||||
else: date_to = None
|
||||
parametrs_list = [int(key_id), organ, names, date_to, date_from, ver]
|
||||
result_list.append(parametrs_list)
|
||||
|
|
|
|||
|
|
@ -31,10 +31,9 @@ class SimpleDB:
|
|||
else:
|
||||
raise Exception (f'Unexpected error reading from Vault: {e}')
|
||||
|
||||
#TODO: rename +
|
||||
def _create_db_pool_from_vault(self):
|
||||
"""
|
||||
Подключение к Vault и получение параметров для подключеник к БД
|
||||
Подключение к Vault и создание пула соеденения.
|
||||
"""
|
||||
try:
|
||||
# Подключение к Vault
|
||||
|
|
@ -80,28 +79,26 @@ class SimpleDB:
|
|||
DATE_TO in date,
|
||||
VERS IN VARCHAR2)
|
||||
"""
|
||||
if not self.pool:
|
||||
raise ValueError(self.pool, "Database pool not initialized")
|
||||
# Данные для БД не могут быть пустыми
|
||||
if not list_data:
|
||||
raise ValueError(list_data, "No data to process")
|
||||
|
||||
|
||||
try:
|
||||
with self.pool.acquire() as connection:
|
||||
with connection.cursor() as cursor:
|
||||
for list_argument_bd in list_data:
|
||||
id, organ, names, date_from, date_to, ver = list_argument_bd
|
||||
parametrs_list = [id, organ, names, date_to, date_from, ver]
|
||||
print("Отправляемых аргрументов: ", *parametrs_list)
|
||||
print("Типов данных: ", list(map(type, parametrs_list)))
|
||||
print("Отправляемые аргрументы: ", *parametrs_list)
|
||||
print("Типы данных: ", list(map(type, parametrs_list)))
|
||||
cursor.callproc('P_RK_GOVERNMENT_REPORTS_INSERS', [
|
||||
id,
|
||||
organ,
|
||||
names,
|
||||
date_from,
|
||||
date_to,
|
||||
organ,
|
||||
names,
|
||||
date_from,
|
||||
date_to, # Может быть None
|
||||
ver,
|
||||
])
|
||||
|
||||
except Error as e:
|
||||
raise Error(f'Ошибка при отправке данных в БД: {e}')
|
||||
except Exception as e:
|
||||
|
|
|
|||
|
|
@ -1,25 +1,16 @@
|
|||
annotated-types==0.7.0
|
||||
anyio==4.10.0
|
||||
beautifulsoup4==4.13.5
|
||||
bs4==0.0.2
|
||||
certifi==2025.8.3
|
||||
cffi==1.17.1
|
||||
charset-normalizer==3.4.3
|
||||
cryptography==45.0.6
|
||||
fastapi==0.116.1
|
||||
hvac==2.3.0
|
||||
idna==3.10
|
||||
oracledb==3.3.0
|
||||
pycparser==2.22
|
||||
pydantic==2.11.7
|
||||
pydantic_core==2.33.2
|
||||
python-dateutil==2.9.0.post0
|
||||
requests==2.32.5
|
||||
six==1.17.0
|
||||
sniffio==1.3.1
|
||||
soupsieve==2.7
|
||||
starlette==0.47.3
|
||||
typing-inspection==0.4.1
|
||||
soupsieve==2.8
|
||||
typing_extensions==4.15.0
|
||||
urllib3==2.5.0
|
||||
datetime
|
||||
Loading…
Reference in New Issue