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

标签 python sqlalchemy

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

有什么方法可以获取列名称的引用版本吗?

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

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

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

到目前为止浏览文档没有结果:(

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

最佳答案

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

engine.dialect.identifier_preparer.quote(name)

关于python - 如何在 sqlalchemy 中将列名和表名呈现为带引号的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291548/

相关文章:

python - SQLAlchemy 复合键顺序

python - C或Python中的声音识别和分类库

python - 如何将 python 2.6 项目移动到 UTF-8?

python - 使用 plot_confusion_matrix 绘制多个混淆矩阵

python - 使用 sqlalchemy 列出索引

python - 如何批量分配 SA ORM 对象属性?

python - 使用 pymssql 成功连接到 Azure 上的 MS SQL DB,执行 INSERT 语句,没有错误消息,但插入了 0 行

python - 如何使用python输入更新mysql

SQLAlchemy 和 Twisted

python - 使用 SQLAlchemy 从反射表中删除行