如何限制for循环的迭代次数

How to limit number of iterations from for loop

我正在努力从 API 查询生成 XML 报告,我希望在限制“for 循环”中的迭代次数方面获得一些指导。

这是我到目前为止编写的代码:

import json
import os
import requests

dserviceIP = "192.168.1.80"
apiPort = "2000"
busName_ST = ("ST1", "ST2", "ST3", "ST4", "ST5", "ST6", "ST7", "ST8", "ST9", "ST10")
buses_ST = ("33", "34", "35", "36", "37", "38", "39", "40", "41", "42")
listNumberOfEvents = "5" # Number of events to query in the list of schedules (Buses)
sessionID = "s12345"

def getSchedule():
    for bus in buses_ST:
        scheduleUrl = f"http://{dserviceIP}:{apiPort}/t/pa/{bus}/out?session={sessionID}"
        requestSchedule = requests.get(scheduleUrl)
        jsonRequestSchedule = json.loads(requestSchedule.text)

        scheduleID = []

        for scheduleIdList in jsonRequestSchedule['events']:
            scheduleID.append(scheduleIdList['id'])
            for eventID in scheduleID:
                eventUrl = f"http://{dserviceIP}:{apiPort}/t/pa/{bus}/out1/{eventID}?session={sessionID}"

来自 requestSchedule = requests.get(scheduleUrl) 的响应示例,我希望从响应中仅提取前 5 个 id 以供使用它作为我的 API HTTP 查询的下一部分。见 eventID

{
    "busid": "response_example",
    "events": [
        {
            "id": "X002"
        },
        {
            "id": "X004"
        },
        {
            "id": "X006"
        },
        {
            "id": "X008"
        },
        {
            "id": "X0010"
        },
        {
            "id": "X0012"
        },
        ...
        ...
        {
            "id": "X0248"
        }
    ]
}

期待我的 eventUrl 结果为

http://192.168.1.80:2000/t/pa/{bus}/out1/X002?session=s12345
http://192.168.1.80:2000/t/pa/{bus}/out1/X004?session=s12345
http://192.168.1.80:2000/t/pa/{bus}/out1/X006?session=s12345
http://192.168.1.80:2000/t/pa/{bus}/out1/X008?session=s12345
http://192.168.1.80:2000/t/pa/{bus}/out1/X010?session=s12345

http://192.168.1.80:2000/t/pa/{bus}/out1/X002?session=s12345
http://192.168.1.80:2000/t/pa/{bus}/out1/X004?session=s12345
...
http://192.168.1.80:2000/t/pa/{bus}/out1/X010?session=s12345

http://192.168.1.80:2000/t/pa/{bus}/out1/X002?session=s12345
...

非常感谢任何帮助我克服这个障碍的建议。

[:5] 一样使用列表切片。

for event in jsonRequestSchedule['events'][:5]:
    eventUrl = f"http://{dserviceIP}:{apiPort}/test/buses/{bus}/events/{event['id']}?session={sessionID}"