当前位置: 首页 > 面试题库 >

Python psycopg2检查行存在

慕高阳
2023-03-14
问题内容

在Python psycopg2中,如何检查行是否存在?

def track_exists(self, track_id):
    cur = self.conn.cursor()
    cur.execute("SELECT fma_track_id FROM tracks WHERE fma_track_id = %s", (track_id,))
    if cur.fetchall() > 0:
        return true
    else:
        return false

目前我正在

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mumu.py", line 38, in track_exists
if cur.fetchall() > 0:
TypeError: 'NoneType' object has no attribute '__getitem__'

问题答案:

不要使用fetchall()(返回的列表永远不会大于0),请使用fetchone()

def track_exists(self, track_id):
    cur = self.conn.cursor()
    cur.execute("SELECT fma_track_id FROM tracks WHERE fma_track_id = %s", (track_id,))
    return cur.fetchone() is not None

fetchone()``None如果没有要获取的内容,则返回,对进行测试is not None会为您提供一个方便的布尔值,以直接返回。



 类似资料:
  • 问题内容: 我具有以下数据库结构: 在我的项目永久链接页面上,我有一个“添加到收藏夹”按钮,可在其中插入新行 如果用户已经在收藏夹中将其替换为“从收藏夹中删除”按钮,我希望能够将其替换。 我无法弄清楚其背后的逻辑-是否需要检查其中是否存在具有当前用户ID和永久链接ID的行?这对我不起作用: 问题答案: 您可能想要这样的东西:

  • 问题内容: 这可能是一件容易的事,但是我是一个业余爱好者,事情对我来说并不奏效。 我只想检查$ lectureName显示的行是否存在。如果某行确实存在$ lectureName,我希望该函数返回“ assigned”(如果没有),则它应返回“ available”。这就是我所拥有的。我相当确定这是一团糟。请帮忙。 当我这样做时,所有返回的内容都是可用的,即使应该返回已分配的内容。 问题答案: 这

  • 问题内容: 我想要一个条件,以防该行根本不存在。 尝试过,但没有一个起作用。 问题答案: 您可以直接检查返回值。 如果您询问是否进行检查 而不进行获取, 则只需让MySQL返回a (或使用命令)。

  • 有人能解释一下如何帮助我们避免? 这段代码不是也容易出现吗?如果是这样的话,那么为什么这个代码比 除了帮助我们了解函数是否实际具有返回值之外,还有什么可能的好处

  • 问题内容: 我有一个使用Flask-SQLAlchemy连接到MySQL数据库的Flask应用程序。 我希望能够检查表中是否存在行。我将如何修改查询以检查行是否存在: 我找到了一个使用SQLAlchemy的问题的解决方案,但似乎不适合Flask-SQLAlchemy的工作方式: 问题答案: 由于你只想查看用户是否存在,因此你不想查询整个对象。只需查询id,如果标量返回不为None,它就存在。 你显

  • 问题内容: 我有一个字符串数组,在插入它们之前需要检查表中是否存在这些字符串,以避免重复。什么是SQL查询,如何替换以下值?:) 我的产品型号: 表格名称: product_pics 数据库名称: product_db 我了解此声明将起作用: 如何正确格式化此格式,以使该方法在产品存在或不存在时返回? 问题答案: 只是喜欢