2017-11-23 11 views
0

Ich möchte Hash-Algorithmus ausführen. Also, ich habe diesen Code gemacht. Ich habe auch hashlib importiert. Aber in der letzten Zeile ist ein Fehler aufgetreten:KeyError bei Verwendung von QString

Ich weiß nicht, was das Problem ist. Hier ist der Code:

def setupUi(self, MainWindow) 
    self.radioLabel = 'sha256' #default 256 
    self.combo.currentIndexChanged.connect(self.OnRadiogroup) 

def OnRadiogroup(self,radioLabel) 
    self.radioLabel = radioLabel 
    self.radioLabel = self.combo.currentText() #get selected hash string 

def create_matchkey(self, row, path, key, radioLabel): 

    hash_function = {"sha1":hashlib.sha1, 
        "sha224":hashlib.sha224, 
        "sha256":hashlib.sha256, 
        "sha512":hashlib.sha512, 
        "md5":hashlib.md5} 
    hash_object = hash_function[radioLabel](self.input_str) 
+0

müssen Sie einen [MCVE] zur Verfügung stellen, das heißt, kann ich Ihren Code, und führen Sie kopieren es ohne Probleme, aber Ihr Beispiel ist nicht. – eyllanesc

Antwort

0

Sie müssen die QString vom radioLabel in eine Python-Zeichenfolge konvertieren:

hash_object = hash_function[str(radioLabel)](self.input_str)