我正在尝试使用SQLAlchemy将一些行插入到数据库表中,但是某些行包含SQLAlchemy将其解释为参数的字符串。这会导致错误,即使我只想完全按原样插入字符串。
例如,一个条目如下:
abc,\“depth \”:0,
它应该执行的查询是:
INSERT INTO schema.table VALUES('abc,\“depth \”:0,')
(我意识到我需要将\“更改为数据库的双反斜杠以正确解释它。)
导致错误:
sqlalchemy.exc.StatementError:(sqlalchemy.exc.InvalidRequestError)绑定参数'0'需要一个值[SQL:“INSERT INTO schema.table VALUES('abc,\”depth \“%(0)s ,')\ n“] [参数:[{}]](关于此错误的背景:http://sqlalche.me/e/cd3x)
有没有办法让SQLAlchemy按原样插入字符串(不修改它或尝试解释它)?
感谢。
基本上,代码是:
engine = create_engine(...)
session = sqlalchemy.orm.sessionmaker(bind=engine)
query = """INSERT INTO schema.table VALUES ( 'abc, \“depth\“:0,')"""
session.execute(query)
session.commit()
session.close()
但是查询是在成千上万的字符串循环中以编程方式创建的(并且每天都会有新字符串),因此我没有预先知道每个字符串是什么。