使用re.findall()查找从A到Z的所有字母时出错

时间:2018-04-25 06:52:16

标签: python regex python-3.x

我的代码是:

import re
key, val = '  ', 2
  self._l[key] = re.findall(r"[A-Z]+", val)

错误:

return _compile(pattern, flags).findall(string)
TypeError: expected string or bytes-like object

1 个答案:

答案 0 :(得分:2)

那是因为你问题中的valint。如果将其设置为str对象,则可以使用:

>>> val = 2
>>> type(val)
<type 'int'>

>>> val = "2"
>>> type(val)
<type 'str'>
>>> re.findall(r"[A-Z]+", val)
[]

>>> val = 'SOME 123 STRING'
>>> re.findall(r"[A-Z]+", val)
['SOME', 'STRING']