Python:';非类型';对象在非空查询结果上不可下标
对于非空查询结果,我得到的Python:';非类型';对象在非空查询结果上不可下标,python,sqlite,Python,Sqlite,对于非空查询结果,我得到的对象不可下标。当我打印时 c.fetchone()它打印正确的结果,但当我检查类型时,它会显示 我没有看到@PRMoureu的评论。她/他完全正确。发生这种情况是因为您已经在打印中获取了这两个值。您需要重新执行选择或删除打印: import sqlite3 conn = sqlite3.connect("scraping.db") c = conn.cursor() c.execute('CREATE TABLE IF NOT EXISTS Terminate (n
对象不可下标。当我打印时
c.fetchone()
它打印正确的结果,但当我检查类型时,它会显示
我没有看到@PRMoureu的评论。她/他完全正确。发生这种情况是因为您已经在打印中获取了这两个值。您需要重新执行选择或删除打印:
import sqlite3
conn = sqlite3.connect("scraping.db")
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS Terminate (numar INT, arj INT )')
conn.commit()
c.execute('DELETE FROM Terminate')
conn.commit()
c.execute('INSERT OR IGNORE INTO Terminate ( numar, arj ) VALUES (1,0)')
conn.commit()
c.execute("SELECT * FROM Terminate") # ORDER BY numar DESC LIMIT 1")
ins = c.fetchone()[0]
print ins, type(ins)
输出似乎正常
1 <type 'int'>
1
没有更多行可用(您的表显然只有一行)。如果你想重复使用,你可以存储第一个结果:result=c.fetchone()
如果你想更多地使用同一行,你必须保留一个像res=c.fetchone()
这样的引用,然后print(res,type(res))
将按你的预期工作。我仍然无法检索该result=c.fetchone()的第一个元素
ins=result[0]TypeError:“NoneType”对象不可下标
您只能调用c.fetchone()
一次
1 <type 'int'>