1

所以我有以下Feeds类

class Feeds(DeclarativeBase):
    __tablename__ = "rawFeeds"

    id = Column(Integer, primary_key=True)
    link = Column('link', String)
    date = Column('date', String)
    source = Column('source', String)

def __init__(self, link, date, source):
    self.link = link
    self.date = date
    self.source = source

并且我想运行检查以查看表中是否已存在数据(以避免添加重复项)。我正在使用以下语句,但无论我尝试什么,它总是会产生 True 结果

if session.query(exists().where(Feeds.link==item['link'][0])):
    print "Already exists"
else:
    #add to database

谁能帮我弄清楚我做错了什么?我一遍又一遍地阅读 SQLAlchemy 文档,但我无法弄清楚这里的错误是什么。谢谢。

4

1 回答 1

2

session.query() 根据文档返回一个 Query 对象:

http://docs.sqlalchemy.org/en/rel_0_7/orm/query.html

这将意味着您的 if 语句将始终评估为 true。

于 2013-09-03T04:24:01.717 回答