Почему мне говорят, что список 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)

Вернуться на верх