【发布时间】:2016-01-07 20:51:55
【问题描述】:
我正在尝试使用SQLAlchemy 运行一些数据库查询。但我在查询带有撇号或任何类型的非字母数字字符的字符串时遇到问题。
例如:test = "I\'ve"
我用过:
matchList = session.query(Quote).filter(Quote.quote.contains(test)).all()
数据库中有 1 条记录包含 "I've" 作为子字符串。但是, matchList 原来是一个空列表。我做错了什么?
完整代码:
sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Base, Quote
from sqlalchemy_utils import escape_like
engine = create_engine("sqlite:///quotes.db")
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
test = "I\'ve"
qList = session.query(Quote).filter(Quote.quote.contains(test.replace('\'', ''))).all()
print qList
似乎SQLAlchemy 不处理转义序列。谁能帮忙
【问题讨论】:
-
'...filter(Quote.quote.co tains(test.replace('/', '')'怎么样?
-
不工作,给我一个空列表[]
-
对不起,把斜线转到另一边
-
不,这行不通。
-
是的,但是两个斜线? “\\”?
标签: python sqlalchemy non-alphanumeric