【问题标题】:How do you pass a JSON list to a new API request?如何将 JSON 列表传递给新的 API 请求?
【发布时间】:2021-06-20 01:01:55
【问题描述】:

我正在尝试从 Twitch 的 API 请求直播主播列表。

首先,我需要检查来自特定 Twitch 团队的所有主播,API 会为我提供他们的 ID。然后,我需要检查哪些是实时的。为此,我编写了以下代码:

import requests
import json
from concurrent.futures import ThreadPoolExecutor


response = requests.get("https://api.twitch.tv/kraken/teams/rhynoesports",
                        headers={'Accept': 'application/vnd.twitchtv.v5+json',
                                 'Client-ID': 'KEY'})

ids = []

with ThreadPoolExecutor(max_workers=5) as executor:
    for i in response.json()["users"]:
        uid = i["_id"]
        ids.append(uid)

parameters = {
    "channel": ids
}

response_live = requests.get("https://api.twitch.tv/kraken/streams/",
                             params=parameters,
                             headers={'Accept': 'application/vnd.twitchtv.v5+json',
                                      'Client-ID': 'KEY'})


status = []

with ThreadPoolExecutor(max_workers=5) as executor:
    for s in response_live.json()["streams"]:
        sid = s["channel"]["display_name"]
        sviewer = s["viewers"]
        sgame = s["preview"]["medium"]
        status.append(sid)
        status.append(sviewer)
        status.append(sgame)

print(status)

对 API 的第一个请求,将其附加到 ids 以下:

['151725719', '45737168', '156113210', '89293605', '650627666', '136014647',
 '99060924', '246849290', '61610474', '602283265', '204979621', '507115885',
 '49251436', '265876002', '155784200']

如何使用存储的ids 作为channel 请求的参数?

【问题讨论】:

    标签: python api python-requests


    【解决方案1】:
    https://api.twitch.tv/helix/streams?user_id=123&user_id=456 230
    

    您可以使用此 API 来查看流 ID 是否有负载

    您只会获得直播的回报。

    【讨论】:

    • 我知道。我想要做的是将第一个 API 调用中获取的 ID 列表传递给第二个 API 调用的参数。
    猜你喜欢
    • 1970-01-01
    • 2020-01-24
    • 2013-06-05
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多