2017-08-09 7 views
-3

Ich habe einen Code wie folgt:Python immer Fehler Valueerror: zu viele Werte entpacken (erwartet 3)

for stri in node.iter('string'): 
     name= (stri.text) 
     # name=name.replace(" ","_") 
     a, b, c = name.split() 
     name = b + "_" + c 

Ich weiß nicht, warum ich den Fehler:

a, b, c = name.split() 
ValueError: too many values to unpack (expected 3) 

es ist sehr interessant, dass dieser Code ohne Fehler ausgeführt wurde!

+1

können 'name' offenbar mehr als zwei Leerzeichen enthält. – DeepSpace

+0

Der Teilungsname gibt mehr als drei Werte zurück. Tun Sie stattdessen Folgendes: 'a, b, c, * dontcare = name.split()' –

+0

@JaredSmith Funktioniert nur mit Python 3. – DeepSpace

Antwort

1

Name sollte drei Zeichenfolge

a, b, c = name.split() 

Ihnen

a, b, c, *d = name.split() 
+1

'" Name sollte drei Zeichenfolgen sein "' Nicht ganz richtig. Es sollte 2 Leerzeichen enthalten. Auch Ihre Lösung wird nur auf Python 3 funktionieren. – DeepSpace

+0

es ist drei Zeichen, ich habe es nur überprüft –

+0

@MasHJ Es sollte 2 Leerzeichen, nicht 3 Zeichen enthalten. Je nach Fehler enthält es mehr als 2 Leerzeichen. – DeepSpace

Verwandte Themen