如何在sqlalchemy中将列和表名称呈现为带引号的字符串?

时间:2016-12-22 20:57:06

标签: python sqlalchemy

我有一个需要在SQL语句中引用的列名。因此,当我在sql炼金术中使用str()呈现查询时,会出现引号。

有没有办法可以获得 这个列名称的引用版本?

当我str(column)时,我得到'<table>.<column>'我想要的是'<table>."<column>"'。或者,当我str(column.name)时,我会'<column>'获得'"<column>"'

FWIW,我在psycopg中使用原始连接,以便使用postgres COPY中的cursor.copy_from命令执行批量加载,copy_from函数需要完全引用列名,这就是我需要它们的原因。

或者,某种is_reserved(name)函数就足够了。

到目前为止,浏览文档已证明无效:(

我可以在技术上重命名该列,但我想将其用作最后的手段。

1 个答案:

答案 0 :(得分:1)

花了一段时间才找到它。假设engine是您的sqlalchemy.engine.Engine对象:

engine.dialect.identifier_preparer.quote(name)