You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python函数间传递多个event_id构建API请求URL

解决方法

1. 修改event_info函数,收集所有event_id并返回

原来的代码用global event_id会在循环中不断覆盖变量,最终只保留最后一个ID。改成用列表收集所有符合条件的event_id,最后返回这个列表:

def event_info():
    event_ids = []  # 用列表存储所有符合条件的event_id
    # US FOOTBALL EVENT INFO API LINK
    link = f'{Base_url}/event/group/{Sport_id}.json?app_id={AppID}&app_key={AppKey}&local={Country}&site={Site}'
    data = requests.get(link).json()  # 直接用.json()解析响应,简化代码
    # JSON PARSE
    for event_data in data['events']:
        if event_data['group'] == 'NFL' and 'MATCH' in event_data['tags']:
            competition = event_data['group']
            event_id = event_data['id']
            event_ids.append(event_id)  # 将当前event_id加入列表
            event_name = event_data['name']
            event_start = event_data['start']
            event_status = event_data['state']
            print(competition, event_id, event_name, event_start, event_status)
            # WRITE TO FIRESTORE
            doc_ref = db.collection(u'unibet_au').document(u'us_football').collection(u'nfl_event_info').document(f'{event_id}')
            doc_ref.set({
                u'competition': competition,
                u'event_id': event_id,
                u'event_name': event_name,
                u'event_start': event_start,
                u'event_status': event_status,
                u'timestamp': firestore.SERVER_TIMESTAMP,
            })
    return event_ids  # 返回所有收集到的event_id

2. 修改match_odds函数,接收event_ids列表并生成正确URL

让函数接收event_ids参数,用逗号将所有ID拼接成字符串后插入URL:

def match_odds(event_ids):
    # 将列表转成逗号分隔的字符串(数字ID需转成字符串类型)
    event_ids_str = ','.join(map(str, event_ids))
    # US FOOTBALL MATCH ODDS API LINK
    url = f'{Base_url}/betoffer/event/{event_ids_str}.json?app_id={AppID}&app_key={AppKey}&local={Country}&site={Site}'
    print(url)
    # 此处可添加API请求及数据处理逻辑,例如:
    # response = requests.get(url)
    # odds_data = response.json()
    # 处理赔率数据...

3. 主函数中串联两个函数

在__main__块中先调用event_info获取所有event_id,再传给match_odds执行:

if __name__ == "__main__":
    all_event_ids = event_info()
    if all_event_ids:  # 确保收集到有效ID后再调用
        match_odds(all_event_ids)

修改完成后,match_odds生成的URL会包含所有符合条件的event_id,格式与你期望的示例一致。

内容的提问来源于stack exchange,提问作者DrewS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:25:19