如何对值列表进行 api 请求调用?

我试图让它遍历变量列表“用户”中的每个元素,并在每个元素上调用 API 请求。现在,它只在列表的最后一个元素上调用 API。


我尝试创建一个 for 循环,该循环将遍历列表中的每个元素,但它不起作用。它只会显示列表中最后一个用户 ID 的信息。


with open('config/config.json') as f:

    config = json.load(f)


API_KEY = config['API_KEY']


def users_info():


    user = ['usrid1', 'usrid2', 'usrid3', 'usrid4', 'usrid5', 'usrid6', 'usrid7']

    url = 'https://slack.com/api/users.info'

    headers = {'Accept': 'application/x-www-form-urlencoded'}

    payload = {

        'token': API_KEY,

        'user': user

    }

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


    if r.status_code == 200:

        print(r.json())

我期望它打印出用户列表中提供的每个用户 ID 的用户信息。如何修复我的代码以使其正常工作?


GCT1015
浏览 82回答 1
1回答

炎炎设计

此方法的松弛文档似乎表明您每次调用只能获取一个用户的信息。当您遍历用户时,您是否尝试过在循环中创建请求,例如:with open('config/config.json') as f:    config = json.load(f)API_KEY = config['API_KEY']def users_info():    users = ['usrid1', 'usrid2', 'usrid3', 'usrid4', 'usrid5', 'usrid6', 'usrid7']    url = 'https://slack.com/api/users.info'    headers = {'Accept': 'application/x-www-form-urlencoded'}    for user in users:        payload = {            'token': API_KEY,            'user': user        }        r = requests.get(url, headers=headers, params=payload)        if r.status_code == 200:            print(r.json())您还应该考虑这里有关如何在使用requests库时提高性能的信息,特别是关于Sessions.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python