Python 值错误:太多值无法解包,电子邮件验证
我试图通过forms.py对电子邮件进行验证,但这给了我一个错误,即“值太多,无法解包”,尽管我对django和python编程还不熟悉 这是我的密码:Python 值错误:太多值无法解包,电子邮件验证,python,django,Python,Django,我试图通过forms.py对电子邮件进行验证,但这给了我一个错误,即“值太多,无法解包”,尽管我对django和python编程还不熟悉 这是我的密码: def clean_email(self): email = self.cleaned_data.get('email') email_base, provider = email.split("@") domain, extension = provider.split('.') # if not domain
def clean_email(self):
email = self.cleaned_data.get('email')
email_base, provider = email.split("@")
domain, extension = provider.split('.')
# if not domain == 'USC':
# raise forms.ValidationError("Please make sure you use your USC email.")
if not extension == "edu":
raise forms.ValidationError("Please use a valid .EDU email address")
return email
异常情况,
ValueError:要解包的值太多
,是由于将列表解包到大小不匹配的目标变量而导致的。比如说,
>>> a, b, c = 'xxx.yyy.edu'.split('.') # ['xxx', 'yyy', 'edu']
# too few target variables
>>> a, b = 'xxx.yyy.edu'.split('.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack
# too many target variables
>>> a, b, c, d = 'xxx.yyy.edu'.split('.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 3 values to unpack
试试这样的
extension = provider[::-1].split('.')[0]
# if not domain == 'USC':
# raise forms.ValidationError("Please make sure you use your USC email.")
if not extension == "ude":
raise forms.ValidationError("Please use a valid .EDU email address")
return email
您的输入数据是什么。这与
.edu.uk
中断。返回uk
作为扩展名,扩展名为wrong@MosesKoledoye,谢谢你指出这一点。我刚刚编辑了我的答案。
extension = provider[::-1].split('.')[0]
# if not domain == 'USC':
# raise forms.ValidationError("Please make sure you use your USC email.")
if not extension == "ude":
raise forms.ValidationError("Please use a valid .EDU email address")
return email