首页 > 解决方案 > 如何在def函数中传递范围

问题描述

想要为网络抓取功能传递一个范围,不知道它是如何完成的。这是为了使我的代码更具可重用性,以便我可以抓取具有不同日期的不同范围,例如 2016... 2017... 2018... 代码如下所示:

import numpy as np
import pandas as pd
import requests

def game_id2017(game_id):
    games_played_2017 = []
    games_played_2018 = []

    print('Getting data...')
    for game_id in range():
        url = 'https://statsapi.web.nhl.com/api/v1/game/{}/boxscore'.format(game_id)
        r_2017 = requests.get(url)
        game_data_2017 = r_2017.json()

        for homeaway in ['home','away']:

            game_dict_2017 = dict()
            game_dict_2017['team'] = game_data_2017.get('teams').get(homeaway).get('team').get('name')
            game_dict_2017['teamID'] = game_data_2017.get('teams').get(homeaway).get('team').get('id')
            game_dict_2017['homeaway'] = homeaway
            game_dict_2017['game_id'] = game_id
            games_played_2017.append(game_dict_2017)

game_id2017(20170201, 20170210, 1) 
TypeError: game_id2017() takes 1 positional argument but 3 were given

标签: pythonfunction

解决方案


game_id2017(*game_id)

对于 game_id 中的 id:然后像列表一样使用 game_id


推荐阅读