简体   繁体   English

Python - ValueError:解压缩的值太多(预期2)

[英]Python - ValueError: too many values to unpack (expected 2)

I'm having difficulty performing a simple GET request to a vendor API. 我在向供应商API执行简单的GET请求时遇到了困难。 I suspect there's a problem with my params varable containing too many elements but I'm unsure of how to fix the problem. 我怀疑我的params varable包含太多元素存在问题,但我不确定如何解决问题。 I've tried several variations but to no avail. 我尝试了几种变化但无济于事。

Solutions in similarly named posts don't appear to be relevant to this scenario (JSON response data from API calls). 类似命名的帖子中的解决方案似乎与此方案无关(来自API调用的JSON响应数据)。

Below is the Python code that is raising this error & a screenshot of my shell output. 下面是引发此错误的Python代码和我的shell输出的屏幕截图。 Please advise. 请指教。 Side note: I'm no expert in Python. 旁注:我不是Python专家。

在此输入图像描述

import requests
import re 

company_ids = '11407'

def call_and_append():
    headers = {
        'Authorization': 'Bearer REDACTED',
    }
    params = (
        ('companies',company_ids+'/people')
    )
    response = requests.get(
        'https://api.mattermark.com/companies/',
        headers=headers,
        params=params
    )

    with open(r'C:\Users\etherealessence\Desktop\personnel_data.json', 'a+') as personnel_data:
        personnel_data.write('{}\n'.format(response.text))

    return response.json()

call_and_append()

The error shows you everything: 错误显示了一切:

for k, vs in to_key_val_list(data): for k,vs in_key_val_list(data):

From this, you can see it required a dict . 从这里,你可以看到它需要一个dict Something like follows: 如下所示:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('https://httpbin.org/get', params=payload)

So, you should change next to a dict to make it work. 因此,您应该在dict旁边进行更改以使其正常工作。

params = (
    ('companies',company_ids+'/people')
)

Detail refers to this . 细节指的是这个

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM