SQL 检查并正确时,sqlalchemy 不支持格式字符

Jas*_*ven 2 mysql sqlalchemy python-3.x

因此,通过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)
Run Code Online (Sandbox Code Playgroud)

查询是

REPLACE INTO table VALUES ...
Run Code Online (Sandbox Code Playgroud)

Gor*_*son 5

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

\n
from sqlalchemy import text\n\n# \xe2\x80\xa6\n\ndef run(self, stmt):\n    with self.db.begin() as conn:\n        conn.execute(text(stmt))\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n