Нужна помощь, чтобы выяснить, как использовать python regexp для поиска возвращаемого значения в словаре

#python #regex #dictionary

#python #регулярное выражение #словарь

Вопрос:

Я новичок в Python. Пытаюсь использовать словари. Я использую следующий код.

 t_p = dict()

for line in f.readlines():
  stObj = re.search( r'Startpoint:s(w )', line, re.M|re.I)
  enObj = re.search( r'Startpoint:s(w )', line, re.M|re.I)
  slObj = re.search( r's*slacks(w )s*(S )s*(S )s*(S )', line, re.M|re.I)
  if slObj:
    sla = slObj.group(3)
  if enObj:
    endpoint = enObj.group(1)
    t_p[ep] = { 'sla' : sla }

f.close()
  

Я продолжаю получать следующую ошибку:

 Traceback (most recent call last):
  File "play.py", line 15, in <module>
    t_p[ep] = { 'sla' : sla } 
NameError: name 'sla' is not defined
  

Я не понимаю, почему он считает, что ‘sla’ не определен.

Комментарии:

1. Потому что тело if slObj не выполняется.

Ответ №1:

Объявление sla находится внутри if :

 if slObj:
    sla = slObj.group(3)
  

Это не выполняется. slObj является None вместо MatchObject . Ваше регулярное выражение не работает.