cur.execute("""
CREATE TEMPORARY VIEW bobby_view AS
SELECT heading1, heading2
FROM bobby
WHERE heading2 = %s; """, (variable,))
cur.execute("""
SELECT d1.heading1
FROM bobby_view d1
WHERE d1.heading1 >= ALL (
SELECT d2.heading1
FROM bobby_view d2);
""")
answer = cur.fetchone()[0]这会产生错误:
TypeError:“NoneType”对象不可订阅
这是我的代码结构。变量是作为函数参数输入的整数,它在上面的代码之前已被转换为字符串。
第二个代码块找到最高的heading1数据。我已经测试了它自己,我很有信心它的工作。因此,我认为错误来自于视图中未正确使用的变量。如有任何帮助或建议,将不胜感激。
发布于 2022-11-04 08:04:23
您可以参考文档这里
set返回查询结果集的下一行并返回单个序列,如果没有更多的行可用,则返回一个序列,因此如果您正在获取最后一行,则会出现错误。试试这样的东西,
answer = cur.fetchone()
while answer is not None:
print(answer)
answer = cur.fetchone()发布于 2022-11-04 08:11:52
尝试:
cur.execute("""
SELECT d1.heading1
FROM bobby_view d1
WHERE d1.heading1 >= ALL (
SELECT d2.heading1
FROM bobby_view d2);
""")
answer = cur.fetchone()
answer = answer[0] of answer else 'default'https://stackoverflow.com/questions/74313801
复制相似问题