Почему мне говорят, что список temp_list не определен, когда он определен, когда я проверяю, есть ли слово из списка в строке [закрыто]
Я работаю на Django и пытаюсь получить тему письма и проверить, есть ли в теме определенное слово.
За это я делаю :
Сначала я объявляю список слов, которые я буду искать.
lst_RAS = [
"ras",
"RAS",
"réussi ",
"terminée",
"terminé"
]
Затем я извлекаю темы писем, которые я получаю, но это не важно, я думаю, поскольку я убеждаюсь, что извлекаю или преобразовываю их в строку.
temp_dict = {}
s = mail["Subject"]
temp_dict['Subject'] = decode_str(s)
В настоящее время я знаю, что стоит струна без забот
С другой стороны, сейчас я пытаюсь проверить, являются ли слова из моего списка частью моей темы. После изучения множества советов здесь кажется, что лучше всего поступить следующим образом.
if any(word in temp_dict['Subject'] for word in lst_RAS):
Но я получаю следующую ошибку
NameError: имя 'temp_dict' не определено
Я также пробовал передавать через обычную переменную, но это ничего не меняет.
Я хотел бы понять, почему у меня возникает эта ошибка, зная, что я думаю, что определил все, что необходимо. Почему мне говорят, что temp_list не определен, хотя он определен.
(весь код здесь)
def decode_str(word):
h = make_header(decode_header(word))
s = str(h)
return s
class HomeAppView(TemplateView):
template_name = "app_manager/index.html"
# Déclarations des variables utiles. Ne pas toucher
encoding = 'utf-8'
final_list = []
ras = erreur = 0
lstSubjectRAS = []
lstSubjectError = []
# Listes des mots de RAS
lst_RAS = [
"ras",
"RAS",
"réussi ",
"terminée",
"terminé"
]
# Liste des mot d'erreurs
lst_ERREUR = [
"error",
"erreur",
"échoué"
]
# Déclarations
attendu = 10
date = (datetime.date.today() - datetime.timedelta(30)).strftime("%d-%b-%Y")
msg_from = '"Name"'
# Tri
result, data = m.search(None, '(FROM {msg_from} SENTSINCE {date})'.format(date=date, msg_from=msg_from))
ids = str(data[0], encoding)
# Création d'une liste de message par ids
id_list = ids.split()
for emailid in id_list:
temp_dict = {}
result, data = m.fetch(str(emailid), "(RFC822)")
email_body = data[0][1]
mail = email.message_from_bytes(email_body)
temp_dict['Sender'] = mail["From"]
temp_dict['Date'] = mail["Date"]
s = mail["Subject"]
temp_dict['Subject'] = decode_str(s)
if any(word in temp_dict['Subject'] for word in lst_RAS):
ras = ras + 1
final_list.append(temp_dict)
manque = attendu - (ras + erreur)
(я на Python 3.9 и Django 4.0.4)