Я загружаю фрейм данных панд в таблицу в Postgres, используя SQLalchemy и psycopg2.Как получить доступ к ошибке psycopg2, содержащейся в ошибке SQLalchemy?
Я хочу записать исключение в мой код только в том случае, если возникает ошибка из-за нулевого значения в столбце, которое нарушает ненулевое ограничение.Я знаю, как проверить эту точную ошибку pSQL с помощью psycopg2, но когда я запускаю свой код, он возвращает ошибку SQLalchemy.
Вот ошибка:
SQLalchemy.exc.IntegrityError:(psycopg2.errors.NotNullViolation) нулевое значение в столбце ...
Вот необходимое исключение:
from sqlalchemy import exc
try:
df.to_sql(name='sql_table', con=engine, if_exists='append', index=False)
except exc.IntegrityError:
Вот что я хочу сделать:
from sqlalchemy import exc
import psycopg2
try:
df.to_sql(name='sql_table', con=engine, if_exists='append', index=False)
except exc.IntegrityError as ex:
ex = ex.psycopg2error
if ex.pgcode == '23502'
print('Data not uploaded: null value in a column violates non-null constraint')
else:
raise
Я знаю, что могу проверить sqlalchemy.exc.IntegrityEror.orig
, но это не так чисто или мелкозернисто, как при использовании элемента pgcode
.