Postgresql 在执行查询之前,如何检查sqlachemy cast的有效性

Postgresql 在执行查询之前,如何检查sqlachemy cast的有效性,postgresql,sqlalchemy,Postgresql,Sqlalchemy,我正在使用SQLALCHEMY定义的几个过滤器执行一个巨大的postgres查询。 过滤器基于str值,str值将(自动)转换为相关类型 在执行SQL查询之前,我可以在纯python中检查强制转换的有效性吗 问题归结为以下示例: 我的数据类型是SMALLINT,python不知道这种类型 import sqlalchemy as sa eng.execute(sa.select([sa.literal('111111').cast(sa.types.SMALLINT)])) DataError

我正在使用SQLALCHEMY定义的几个过滤器执行一个巨大的postgres查询。 过滤器基于str值,str值将(自动)转换为相关类型

在执行SQL查询之前,我可以在纯python中检查强制转换的有效性吗

问题归结为以下示例: 我的数据类型是SMALLINT,python不知道这种类型

import sqlalchemy as sa
eng.execute(sa.select([sa.literal('111111').cast(sa.types.SMALLINT)]))

DataError: (psycopg2.errors.NumericValueOutOfRange) value "111111" is out of range for type smallint
LINE 1: SELECT CAST('111111' AS SMALLINT) AS anon_1
我可以在执行查询后捕获异常,但是如何在执行sql代码之前预先验证sqlalchemy/psycopg中的值呢