当前位置: 首页 > 面试题库 >

“Too many values to unpack” Exception

高和通
2023-03-14
问题内容

我正在Django中进行项目开发,我刚刚开始尝试扩展User模型以创建用户个人资料。

不幸的是,我遇到了一个问题:每次尝试在模板(user.get_template.lastIP例如)中获取用户个人资料时,都会出现以下错误:

Environment:

Request Method: GET
Request URL: http://localhost:8000/
Django Version: 1.1
Python Version: 2.6.1

Template error:
In template /path/to/base.tpl, error at line 19
   Caught an exception while rendering: too many values to unpack

19 :                Hello, {{user.username}} ({{ user.get_profile.rep}}). How's it goin? Logout


Exception Type: TemplateSyntaxError at /
Exception Value: Caught an exception while rendering: too many values to unpack

关于发生了什么或我做错了什么的任何想法?


问题答案:

该异常意味着你要解压缩一个元组,但是相对于目标变量的数量,该元组的值太多。例如:这项工作,先打印1,再打印2,然后打印3

def returnATupleWithThreeValues():
    return (1,2,3)
a,b,c = returnATupleWithThreeValues()
print a
print b
print c

但这会引发你的错误

def returnATupleWithThreeValues():
    return (1,2,3)
a,b = returnATupleWithThreeValues()
print a
print b

加薪

Traceback (most recent call last):
  File "c.py", line 3, in ?
    a,b = returnATupleWithThreeValues()
ValueError: too many values to unpack

现在,我不知道在你的情况下发生这种情况的原因,但也许此答案将为你指明正确的方向。



 类似资料:
  • 问题内容: 即使执行catch块并抛出第二个Exception,也会在此代码中进行设置? 问题答案: 是的,finally块始终运行…除非以下情况: 运行try-catch-finally块的线程被杀死或中断 你用 基础虚拟机以其他方式被破坏 基础硬件在某种程度上无法使用 另外,如果您的finally块中的方法抛出未捕获的异常,则此后将不执行任何操作(即,该异常将像在其他任何代码中一样被引发)。发

  • 问题内容: 我想捕获一个异常,将其记录下来,设置一个标志,然后重新抛出相同的异常 我有这个代码: 但是eclipse在throw ex时抱怨,说“未处理的异常类型Exception”,建议我在它周围添加一个try-catch块。 实际上,我希望调用此方法的进程处理该异常,而不是自己处理……如果一切正常,我只想返回true,如果有异常,则将其记录下来 另一方面,我可以将异常包装在另一个异常中,但是不

  • 问题内容: 您如何在Java中以及在何处定义自己的Exception层次结构? 我的主要问题涉及必须定义Exception类的包位置。 我们是否为异常创建一个特殊的程序包并将所有类放入其中? 问题答案: 我将此作为一般规则。 在适当的地方,使用预定义的Java异常。例如,如果您的代码有某种I / O错误,则抛出IOException是可以的。 仅当需要在try / catch块中区分两个异常时,才

  • 问题内容: 如何使用Spring Async框架记录此日志,而不必尝试尝试每种异步方法?它似乎并没有像正常的那样通过。 问题答案: 可以使用自定义配置方法以记录任何引发的异常。 以下代码实现了此模式。标记为的任何方法都将使用method 的返回值。这将返回,它会处理所有日志记录(在这种情况下,它仅显示单词“ CAUGHT!”,但您可以将其替换为日志记录。

  • 问题内容: 我的代码: 我的错误: 线程“主”中的异常java.lang.RuntimeException:javax.mail.MessagingException: 未知的SMTP主机:smtp.gmail.com; 嵌套的异常是: java.net.UnknownHostException:smtp.gmail.com, 位于Mail.SendMailTLS.main(SendMailTLS

  • 问题内容: 您如何序列化Exception的子类? 这是我的例外: 我已经尝试过使用@XmlTransient和@XmlAccessorType进行各种变体,但是JAXB不断尝试序列化getStackTrace / setStackTrace对,但这无法完成。 如何告诉JAXB忽略父项上的所有字段? 问题答案: 我用以下信息解决了这个问题:http : //forums.java.net/jive

  • 问题内容: 在我的一次采访中,面试官问我一个关于多个障碍的问题。问题是: 如果父类(即)单独可以处理所有其他异常,为什么我们需要其他子类来处理异常。 问题答案: 使用Exception或RuntimeException的自写子类有不同的优点: 您可以将其他信息(字段)添加到移交给日志记录的“例外”中。这对于更轻松地跟踪您的错误或在用户的应用崩溃时可以向您的用户提供更多信息,他可以为您提供帮助 您可

  • 问题内容: 任何Throwable都可以被捕获 输出: 因此,如果在初始化块期间做不好的事情,我希望能够捕获ExceptionInInitializerError。但是,以下操作无效: 输出: 并且如果我更改代码以另外捕获ArrayIndexOutOfBoundsException 被捕获的是ArrayIndexOutOfBoundsException: 谁能告诉我为什么呢? 问题答案: 顾名思义