Python( flask /棉花糖)ValueError : too many values to unpack (expected 2)

标签 python python-3.x api flask marshmallow

我正在开发一个 Flask 项目,我正在使用 marshmallow 来验证用户输入。 下面是一段代码:

def create_user():
    in_data = request.get_json()
    data, errors = Userschema.load(in_data)
    if errors:
        return (errors), 400
    fname = data.get('fname')
    lname = data.get('lname')
    email = data.get('email')
    password = data.get('password')
    cpass = data.get('cpass')

当我消除 errors 部分时,代码可以完美运行。当我按原样运行它时,出现以下错误:

builtins.ValueError

ValueError: too many values to unpack (expected 2)

Traceback (most recent call last)

File "/home/..project-details.../venv3/lib/python3.6/site-packages/flask/app.py", line 2000, in call

error = None

ctx.auto_pop(error)

def __call__(self, environ, start_response):
    """Shortcut for :attr:`wsgi_app`."""
    return self.wsgi_app(environ, start_response)


def __repr__(self):
    return '<%s %r>' % (
        self.__class__.__name__,
        self.name,

注意:var in_data 是一个字典。 有什么想法吗??

最佳答案

我建议你检查你的依赖版本。 根据 Marshmallow API reference , schema.load 返回:

Changed in version 3.0.0b7: This method returns the deserialized data rather than a (data, errors) duple. A ValidationError is raised if invalid data are passed.

我怀疑 python 试图将 dict(作为单个对象返回)解压缩为两个变量。引发异常是因为没有任何内容可以打包到“错误”变量中。下面重现了错误:

d = dict()
d['test'] = 10101
a, b = d
print("%s : %s" % (a, b))

关于Python( flask /棉花糖)ValueError : too many values to unpack (expected 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51817237/

相关文章:

python - 返回函数的输出与打印它有何不同?

python - Conda:如果无法访问 conda channel ,如何忽略?忽略 UnavailableInvalidChannel?

python - OJ 说我的 python 程序编译错误,即使它在我的计算机上运行良好(ubuntu 18.04)

reactjs - 处理从 React 应用程序到 NodeJS 后端的长时间运行的 post 请求时的建议

api - 无需下载的 Adwords api 报告

javascript - 将 Create-React-App 与 ExpressJs 结合使用

javascript - 将数据从 Javascript 往返传递到 Redis(通过 Python)并返回?

python - 在Python中给定pandas数据框绘制多个堆叠条形图

python - 如何检查不变性

python - 如何在 django-import-export 中导入 django-taggit 标签