需要帮助弄清楚如何在字典中使用python正则表达式搜索返回值

时间:2014-07-03 19:49:24

标签: python regex dictionary

我是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*slack\s\(\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

我不明白为什么它会思考&#39; sla&#39;没有定义。

1 个答案:

答案 0 :(得分:0)

sla的声明位于if

if slObj:
    sla = slObj.group(3)

这没有被执行。 slObjNone,而不是MatchObject。你的正则表达式无效。