当sqlalchemy *.to_sql语句在没有try-except的情况下出错时,错误语句将打印到控制台。
我想捕获错误语句并将其发送给日志记录器。logger.error()中返回错误原因和错误语句的值是什么?
try:
a.to_sql(name="lar", schema="lar", con=engine, if_exists="append", index=False)
except sqlalchemy.exc.SQLAlchemyError:
logging.error(sqlalchemy.exc.SQLAlchemyError)
break
如果没有try块,控制台将获得:(这是我在日志记录器中想要的)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1366, "Incorrect decimal value:
'Exempt' for column 'combined_loan_to_value_ratio' at row 1")
[SQL: INSERT INTO lar.lar .... etc., ....
1条答案
按热度按时间368yc8dk1#
从DBAPIError继承的异常(如
DataError
)拥有属性orig
和statement
,这两个属性分别包含原始DB-API错误消息和正在执行的SQL语句。生成如下所示的日志消息: