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

Bri*_*ian 2 python sqlalchemy

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

有没有一种方法可以让我得到的报价版本只是列的名字吗?

当我这样做时str(column),我会得到'<table>.<column>'我想要的'<table>."<column>"'。或者当我这样做时str(column.name),我会'<column>'在我想要的时候得到'"<column>"'

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

或者,某种is_reserved(name)功能就足够了。

到目前为止,浏览文档已被证明是徒劳的:(

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

Bri*_*ian 6

找了好久才找到。假设engine是你的sqlalchemy.engine.Engine对象:

engine.dialect.identifier_preparer.quote(name)