我是 python 的新手,甚至是 sql 的新手,但我整个上午都在努力完成这项工作,但我似乎无法弄清楚。我有一个名为 POSTS(id) 的表设置。我试图检查一个数字是否已经在 id 列中,但 postid 是什么数字并不重要,因为即使 postid 设置为不在数据库中的数字,数据也永远不会返回 none。
import sqlite3 as lite
import sys
con = lite.connect('post.db')
postid = '52642'
cur = con.cursor()
cur.execute("select id from POSTS where id=?", (postid,))
data = cur.fetchall()
if data is None:
print ('not found')
else:
print ('found')
Run Code Online (Sandbox Code Playgroud)
该声明
data = cur.fetchall()
Run Code Online (Sandbox Code Playgroud)
当没有找到任何东西时data
,将分配给一个空列表,而不是 None
。
所以只需将您的支票更改为:
if not data:
Run Code Online (Sandbox Code Playgroud)
代替:
if data is None:
Run Code Online (Sandbox Code Playgroud)