2017-12-12 9 views
0

Ich habe versucht, meinen Code auszuführen, aber es wirft "AttributeError: 'NoneType' Objekt hat kein Attribut 'Gruppe'" und ich kann nicht scheinen Regex zu installieren. Ich habe gelesen, dass es eingebaut ist, aber ich weiß nicht, was ich tun soll. hier ist der Code, der den Fehler wirft:Warum hat der Code, der das Objekt "AttributeError: 'NoneType" wirft, kein Attribut' group '?

while i>0: 
    print("Number "+str(i)) 
    src = str(br.parsed()) 
    start1 ="¿" 
    end1 = "?<" 
    result = re.search('%s(.*)%s' % (start1,end1), src).group(1) 
    print(str(result)) 
    question_index=questions.index(result) 
    print("The answer is " + answers[question_index]) 
    question_form = br.get_form() 
    question_form["user_answer"]=answers[question_index] 
    br.submit_form(question_form) 
    i=i-1 

diese Linie führt den Fehler:

result = re.search('%s(.*)%s' % (start1,end1), src).group(1) 

Antwort

1

Sie brauchen nicht zu „installieren“, um die regex Modul re. Sie haben Recht, dass es eingebaut ist, Sie haben es, und es funktioniert gut. Wenn Sie es nicht hatten, hätten Sie eine ImportError bekommen, als Sie versuchten, es zu importieren.

Das Problem ist, dass Ihre Regex-Suche findet keine Übereinstimmungen, so dass es None zurückgibt. Dann versuchen Sie sofort, das Attribut "group" in None auf derselben Zeile zuzugreifen, die nicht vorhanden ist. Trennen Sie die Suche von .group(1), überprüfen Sie die Rückgabetyp für None, und fahren Sie fort, wenn die Rückkehr nicht None ist. Wenn der Rückgabewert von re.search()None ist, dann tun Sie, was Sie wollen, um den Fehler zu behandeln - beenden Sie, Fehlermeldung anzuzeigen, HCF, was auch immer.

ändern diese:

result = re.search('%s(.*)%s' % (start1,end1), src).group(1) 

Um so etwas wie dieses:

result = re.search('%s(.*)%s' % (start1,end1), src) 
if result is None: 
    print("Error! No matches") 
    return # or break, exit, throw exception, whatever 

result = result.group(1) # reassign just the group you want to "result" 
# carry on with the rest of your loop 
Verwandte Themen