当前位置: 首页>大数据>正文

requests.post 请求报ValueError- too many values to unpack (expected 2)

1、问题描述

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


requests.post 请求报ValueError- too many values to unpack (expected 2),第1张

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)

https://www.xamrdz.com/bigdata/7qz1994750.html

相关文章: