我知道我必须在这里犯一个愚蠢的错误......
checksum = self.hashItem(os.path.join(root, filename))
print checksum
query = 'SELECT * FROM tracked_file WHERE md5 = ?'
self.con.execute(query, [str(checksum)])
results = self.cur.fetchall()
print results
这是表结构
'CREATE TABLE if not exists tracked_file (filename TEXT, filepath TEXT, date_created TEXT, date_modified TEXT, file_size INTEGER, sha1 TEXT, md5 TEXT, catalog_date TEXT, archive_date TEXT);'
并且脚本的输出显示我可以在表中手动验证的md5值。
48f3dd221a0cb5284c678b3aff24d668
[]
ff12917ca9ec1cf8bc913efdf7f3ade7
[]
7b5cf763ef1a75eceb0bb960421a3ec2
[]
390228bde6440ed38f45dbf8ea09d860
[]
c10e728e60e580b0eb97c3ab705b8fb9
答案 0 :(得分:2)
您正在针对连接运行查询:
self.con.execute(query, [str(checksum)])
但是试图从光标中获得结果:
results = self.cur.fetchall()
连接的execute
方法创建了一个中间游标来运行SQL,但这不会是你在self.cur
<中创建和存储的游标。 / p>
尝试:
self.cur.execute(query, [str(checksum)])
results = self.cur.fetchall()