zoukankan      html  css  js  c++  java
  • 【接口平台】too many values to unpack

    有小伙伴反馈,在执行用例时,报错 too many values to unpack
    在这里插入图片描述
    确实服务端出现了异常报错

    Traceback (most recent call last):
      File "/Users/lluozh/work/git/SWAPI/util/httpTool/baseUtil.py", line 112, in POST
        response = requests.post(self._content_.url, data=self._content_.request_body, headers=self._content_.header, params=self._content_.query_params, proxies=self._content_.proxies, verify=False, timeout=HTTP_FILE_REQUEST_TIME_OUT)
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/api.py", line 116, in post
        return request('post', url, data=data, json=json, **kwargs)
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/api.py", line 60, in request
        return session.request(method=method, url=url, **kwargs)
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/sessions.py", line 519, in request
        prep = self.prepare_request(req)
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/sessions.py", line 462, in prepare_request
        hooks=merge_hooks(request.hooks, self.hooks),
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/models.py", line 316, in prepare
        self.prepare_body(data, files, json)
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/models.py", line 507, in prepare_body
        body = self._encode_params(data)
      File "/Users/lluozh/work/git/SWAPI/venv/lib/python3.7/site-packages/requests/models.py", line 97, in _encode_params
        for k, vs in to_key_val_list(data):
    ValueError: too many values to unpack (expected 2)
    

    too many values to unpack,字面上意思为太多值无法解包?

    有人提到
    原因是字典这个是一个迭代器对象,参考官方文档找到下列说明,字典只支持Key的遍历,如果想对key,value,则可以使用items方法
    但是并无相关

    查看这个接口的方法为POST,请求的参数:

    [
       "llz-test-public-2/6e3a9bd76c754d5ebef69664b7cc0ba8.png"
    ]
    

    响应值正确:

    {
        "code": 0,
        "data": [],
        "message": "Ok"
    }
    

    这个接口请求应该无任何需要解析的部分呀?
    此时小伙伴又反馈说使用postman请求是没问题的,试试,发现可以正常响应

    再check一下代码中对于POST的请求,直接使用json格式的请求ok,那问题出在哪里?

    发现用户设置该接口的请求body类型是x-www-form-urlencoded

    OMG!将类型修改成json,请求成功

    这个问题出现的部分原因是因为平台需要设置请求body的类型,后续可以考虑和postman一致,直接避免此类型问题的出现

  • 相关阅读:
    xxx.app已损坏,打不开.你应该将它移到废纸篓-已解决
    idea 配置maven一直停留在loading archetype list
    pom.xml 识别xml文件
    idea .defaultMessage
    处理GitHub上的不允许100MB大文件上传
    Makefile 简易教程
    Android:用Intent传送图片
    Android: ListView的使用(列表控件)
    Android: SharedPreferences的简单使用(数据可持久化)
    Andriod:一个Activity向另一个Activity传递数据
  • 原文地址:https://www.cnblogs.com/guanhuohuo/p/12533566.html
Copyright © 2011-2022 走看看