我知道这个错误意味着什么,但我在一个非常意想不到的地方看到它:
if rate and len(rate) == 1:
TypeError:“NoneType”类型的对象没有len()
背景是:
rate = re_search_once("(\d+)", ratetxt)
if rate and len(rate) == 1:
其中re_search_once只是正则表达式提取的语法糖。
无论如何,无论“速率”如何,Python如何尝试评估NoneType的“和”的第二部分? (在这种情况下,它只是None,NoneType的唯一值)
我无法检查“rate”的实际值,只是在日志中注意到了它。
在Ubuntu 10.04.4 LTS上使用python 2.6.5
更新了
的内容def re_search_once(pattern, string, flags=0):
if string is None:
return None
mo = re.compile(pattern).search(string, flags)
if mo:
gs = mo.groups()
if len(gs) == 1:
return gs[0]
else:
return gs
else:
return None