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 字符串格式化字符。
所以我用 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 字符串格式化字符。