Ну, если ваша единственная проблема связана со сравнением, вы можете попробовать:
if m.hexdigest() == row[0]:
, поскольку row
- это кортеж, а не строка, но ваша базовая стратегия мне кажется неправильной. Вы извлекаете hashkey
для каждой строки из базы данных, а затем делаете свой собственный поиск нужной. Гораздо лучше, чтобы база данных выполняла поиск за вас. Скорее всего, база данных будет лучше выполнять поиск (так как она, вероятно, имеет индекс в поле hashkey
- вы создали индекс для этого поля, не так ли?), И она должна отправить вам только один результат, сохранив время. Таким образом, вы можете выполнить такой запрос, чтобы определить, существует ли сообщение:
m.execute('select exists(select * from mail where hashkey=?)', m.hexdigest())
Последняя точка стиля: Python имеет True
и False
, поэтому нет необходимости использовать 1
и 0
для логических значений.