美文网首页
requests.post 请求报ValueError: too

requests.post 请求报ValueError: too

作者: mylemon | 来源:发表于2024-02-28 15:28 被阅读0次

    1、问题描述

    以前写的接口自动化脚本,用到新的项目中报错


    image.png

    2、ValueError: too many values to unpack (expected 2)

    什么意思?

    有太多的值无法解压缩---大白话“左边接收的变量和右面生成的值的个数对不上”。

    例子

    假设你有一个元组,其中包含三个元素,但你尝试使用两个变量来解包它:

    data = (1, 2, 3)
    a, b = data
    
    formdata =[{"operationName":"reportList","variables":{"projectIds":[1],"limit":10,"offset":0},"query":"fragment RequiredDataForDownloadReport on ReportType {\n  id\n  fileTypeList\n  allSupportTypeList\n  __typename\n}\n\nquery reportList($projectIds: [Int!]!, $limit: Int, $offset: Int, $name: [FuzzyInputType!], $template: [ReportTemplateEnum!], $createdTime: [TimeIntervalInputType!]) {\n  reportList(projectIds: $projectIds, limit: $limit, offset: $offset, name: $name, template: $template, createdTime: $createdTime) {\n    count\n    result {\n      id\n      ...RequiredDataForDownloadReport\n      name\n      template\n      createdTime\n      status\n      project {\n        id\n        fullName\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n"}]
    
    print(type(formdata))#<class 'list'>
    response = requests.post(url=url,data=formdata,headers=headers)
    

    那么最可能的原因是 url, formdata, 或 headers 变量中的一个或多个包含了多于预期的值。

    例如,如果 formdata 或 headers 不是一个字典(这是 requests.post 方法所期望的),而是其他类型的序列(如列表或元组),那么就会出现这个错误。

    所以用json.dumps 将list转成json串即可。

    response = requests.post(url=url,data=json.dumps(formdata),headers=headers)
    

    相关文章

      网友评论

          本文标题:requests.post 请求报ValueError: too

          本文链接:https://www.haomeiwen.com/subject/wiqfzdtx.html