我对这里发生的事有点不知所措。我正在为一个在线编程课程做一个挑战,解决方案是在sql查询中添加第二个where语句。但是,当我这样做时,python会给我一个typeerror,说“typeerror:'nonetype'object is not subscriptable”。我很确定这是因为最后的fetchone()[1]需要一个列表或元组来检索id。我不明白的是为什么添加where子句的第二位会改变结果的类型。我已经检查了语句本身,在数据库上测试它时它可以工作,下面代码中的第一个link\u id语句工作正常,它返回int对象,但第二个返回错误。它应该返回一个类似的int对象。
link_id = self.cursor.execute(self.sql_select + " WHERE " + self.field + "=?", (value,)).fetchone()[1]
print("link_id type:", type(link_id))
link_id = self.cursor.execute(self.sql_select + " WHERE " + self.field + "=? AND albums.artist=?", (value, self.artist_id)).fetchone()[1]
print("link_id type:", type(link_id))
1条答案
按热度按时间q8l4jmvw1#
因为self.artist\u id没有。当再次运行此代码块时,它将重置。