【问题标题】:Django: AttributeError: 'NoneType' object has no attribute 'group' errorDjango:AttributeError:“NoneType”对象没有属性“组”错误
【发布时间】:2015-08-15 15:38:20
【问题描述】:

我想要正确的代码

try:
        res = self.browser.open('https://login.facebook.com/login.php?login_attempt=1',form_data)
        response = res.read()
        self.fbid = re.search('https://www.facebook.com/(.*)\?sk=info',response)
        self.fbid = re.search('https://www.facebook.com/(.*)',self.fbid.group(1))
        self.fbid = re.search('https://www.facebook.com/(.*)',self.fbid.group(1))
    except urllib2.HTTPError,e :
        print "****exception****inside login  error code: %s" % (e.code)
    res.close()
except urllib2.HTTPError,e :
     print "****exception****inside login  error code: %s" % (e.code)

#print " server Response Code: %s " % (res.code)

我收到了这个错误

File "facebotv2.py", line 122, in login
self.fbid = re.search('https://www.facebook.com/(.*)',self.fbid.group(1))
AttributeError: 'NoneType' object has no attribute 'group'

完整代码在这里:https://github.com/pun1sh3r/facebot/blob/master/facebotv2.py

【问题讨论】:

  • 也许你应该检查你的每一个正则表达式是否真的返回一些东西,然后再把它塞进下一个正则表达式。似乎其中一个正在返回None

标签: python regex django attributes regex-group


【解决方案1】:

我最好的猜测是您的 response 与您的正则表达式 'https://www.facebook.com/(.*)\?sk=info' 不匹配,这就是它没有捕获任何组的原因

始终检查您的 re.search 是否返回对象

if self.fbid:
      self.fbid = re.search('https://www.facebook.com/(.*)',self.fbid.group(1))
else:
    """do something else"""

如果您的正则表达式匹配某些内容,它可能会显示类似 <_sre.SRE_Match object at 0xb7166410> 的内容,这将使您的 if 条件为真,您可以使用分组从匹配中提取组

【讨论】:

    猜你喜欢
    • 2020-01-09
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 2017-09-14
    • 2021-02-17
    • 2023-02-17
    相关资源
    最近更新 更多