Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从该API获取所有用户的电子邮件?_Python_Python 3.x_Api - Fatal编程技术网

Python 如何从该API获取所有用户的电子邮件?

Python 如何从该API获取所有用户的电子邮件?,python,python-3.x,api,Python,Python 3.x,Api,我正在使用这个API并尝试获取用户的所有电子邮件。我尝试循环结果,但它只返回循环到用户数的第一个结果 下面是我当前的代码 def get_user(): url = 'https://api.pagerduty.com/users' headers = { 'Accept': 'application/vnd.pagerduty+json;version=2', 'Authorization': 'Token token={token}'.for

我正在使用这个API并尝试获取用户的所有电子邮件。我尝试循环结果,但它只返回循环到用户数的第一个结果

下面是我当前的代码

def get_user():

    url = 'https://api.pagerduty.com/users'
    headers = {
        'Accept': 'application/vnd.pagerduty+json;version=2',
        'Authorization': 'Token token={token}'.format(token=API_KEY)
    }

    r = requests.get(url, headers=headers)

    result = []
    emails = r.json()['users'][0]['email']
    for email in emails:
        if r.status_code == 200:
            result.append(emails)
    return result

我目前在一个附加列表中返回结果,但该列表不起作用,因此我如何获取每个用户的电子邮件,而不仅仅是第一个用户的电子邮件?

您需要循环查看
用户
对象,并从每个用户处获取
电子邮件。当前,您仅收到用户0的电子邮件

if r.status_code == 200:
    result = [user['email'] for user in r.json()['users']]
else:
    # raise some error, set result = [], or some other indication of failure

应该是
result.append(电子邮件)
。。。。不是
电子邮件
?@johnnymapp我刚刚试过,它会返回每个用户电子邮件的第一个字母。看起来你应该在用户和每个收到他们电子邮件的用户之间循环。完整响应对象看起来像什么?@PatrickHaugh完整响应与此处类似: