#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
. Ваше регулярное выражение не работает.