如何从我的数据库为每个团队运行此api?

时间:2019-10-02 14:50:48

标签: python python-3.x mongodb api

我正在使用此API来获取团队中每个成员的用户电子邮件。这些团队来自mongo数据库。我想让此API在数据库中的每个团队中运行,并为每个团队的每个成员返回电子邮件列表。目前,API仅检索数据库中第一小组成员的电子邮件。

git mv -f

如何从数据库中为每个团队运行它?

1 个答案:

答案 0 :(得分:1)

您似乎正在从团队循环中过早返回。如果您改为在结果列表中收集电子邮件,则问题将得到解决。

def list_users():
    url = 'https://api.pagerduty.com/users'
    headers = {
        'Accept': 'application/vnd.pagerduty+json;version=2',
        'Authorization': 'Token token={token}'.format(token=API_KEY)
    }
    result = []
    for team in teams:
        payload = {
            'team_ids[]': team['team_id'],
            'limit': 100,
            'offset': 0
        }
        r = requests.get(url, headers=headers, params=payload)

        users = r.json()['users']
        emails = []
        # loops for each user and retrieves their email
        for user in users:
            if r.status_code == 200:
                emails.append(user['email'])
        result.append(emails)
    return result