在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__'
使用^{} 将允许Postgresql在中的第一次出现时停止搜索,而不是在用完之前进行搜索:
另一个优点是它总是返回一个包含布尔值的行,该值可以直接使用而无需进一步解释。
不要使用
fetchall()
(它返回一个永远不大于0的列表),使用fetchone()
:fetchone()
如果没有要获取的内容,则返回None
,并且对is not None
进行测试可以提供一个方便的布尔值,以便直接返回。相关问题 更多 >
编程相关推荐