Я пытаюсь использовать оператор IF для запуска smtp для отправки электронных писем, и по какой-либо причине мои совпадающие строки не интерпретируются как совпадение.
Вот с чем я работаю:
Я импортирую все, что мне нужно, и задаю «вчера» в виде строки.
import csv, sqlite3
from datetime import date, timedelta
today = date.today()
yesterday = today - timedelta(days = 1)
yesterday = str(yesterday)
Я создал скребок, чтобы захватывать задания с разных сайтов и переносить их в CSV-файл. Затем я перебираю свой CSV-файл и собираю все строки, которые соответствуют моим критериям «навыков»:
skills = ('ninja')
csv_data = csv.DictReader(open('jobs.csv'))
for row in csv_data:
if skills in row.get('address', '').lower():
print("match")
print(row['day'])
print(type(row['day']))
print(yesterday)
print(type(yesterday))
cur.execute("INSERT INTO jobs_table(day,
link,
description,
compensation,
employment_type,
images,
address)
VALUES(:day,
:link,
:description,
:compensation,
:employment_type,
:images,
:address)", row,)
db.commit()
Все это прекрасно работает и загружает задания в мою базу данных. Вывод для «печати» дает мне:
match
2019-06-14
<class 'str'>
2019-06-25
<class 'str'>
match
2019-06-25
<class 'str'>
2019-06-25
<class 'str'>
match
2019-06-25
<class 'str'>
2019-06-25
<class 'str'>
После этого запускается:
cur.execute(f"SELECT description, link
FROM jobs_table WHERE day = {yesterday}")
results = cur.fetchall()
if results:
for result in results:
result = str(result)
result = result.replace("'",'')
result = result.replace('(','')
result = result.replace(')','')
send_email(result)
else:
print('No Results In The Database')
print('')
print('')
db.close()
И это распечатывает:
No Results In The Database
Что я не понимаю, потому что, как упоминалось выше, и «день» моей базы данных, и «вчерашний день» даты и времени совпадают.
Кто-нибудь знает, что здесь может происходить?