sqlalchemy 不支持的格式字符,而 SQL 已检查并正确

sqlalchemy unsupported format character while SQL is checked and correct

所以我用 https://www.eversql.com/sql-syntax-check-validator/ 检查了我的 SQL,这是正确的。但是当我尝试使用它时,我得到了 ValueError: unsupported format character 'v' (0x76) at index 5519!我相信这是因为我的查询非常大(>15.000 个字符),但我不确定。四处搜索并没有发现其他人的大量查询有任何问题,尽管大多数网页的日期都是 2016 年之前的,所以我不确定它们是否仍然相关。 这是我用来执行查询的代码:

def run(self, stmt):
    with self.db.connect() as conn:
        conn.execute(stmt)

查询是

REPLACE INTO table VALUES ...

使用 SQLAlchemy 的 text() 函数准备要执行的语句:

from sqlalchemy import text

# …

def run(self, stmt):
    with self.db.begin() as conn:
        conn.execute(text(stmt))

这将防止 SQL 通配符 % 被误解为 Python 字符串格式化字符。