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

Python 如何从我的数据库中为每个团队运行此api?,python,python-3.x,mongodb,api,Python,Python 3.x,Mongodb,Api,我使用这个API来获取团队中每个成员的用户电子邮件。这些团队来自mongo数据库。我想让这个API为数据库中的每个团队运行,并为每个团队的每个成员返回电子邮件列表。目前,API仅检索数据库中第一团队成员的电子邮件 with open('config/config.json') as f: config = json.load(f) API_KEY = config['API_KEY'] # loads API key # Database info client = MongoClie

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

with open('config/config.json') as f:
    config = json.load(f)
API_KEY = config['API_KEY'] # loads API key

# Database info
client = MongoClient(config['HOST'], config['PORT'])
db = client[config['DATABASE']]
teams = list(db.teams.find())  # gets all the teams from the database

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'])
      else:
        return None
    return emails
  return result

如何从数据库中为每个团队运行此功能?

看起来您过早地从团队循环中返回。如果您在结果列表中收集电子邮件,您的问题就会得到解决

def list_用户():
url='1〕https://api.pagerduty.com/users'
标题={
“接受”:“application/vnd.pagerduty+json;version=2”,
'Authorization':'Token Token={Token}'。格式(Token=API_KEY)
}
结果=[]
对于团队中的团队:
有效载荷={
“团队id[]:团队[“团队id”],
“限制”:100,
“偏移量”:0
}
r=requests.get(url,headers=headers,params=payload)
users=r.json()['users']
电子邮件=[]
#为每个用户循环并检索他们的电子邮件
对于用户中的用户:
如果r.status_code==200:
email.append(用户['email'])
结果。追加(电子邮件)
返回结果