如何在def函数中传递范围

时间:2019-02-12 12:19:25

标签: python function

想要传递范围的网页抓取功能,但不确定如何完成。这是为了使我的代码更具可重用性,以便我可以在不同的日期抓取不同的范围,例如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

2 个答案:

答案 0 :(得分:0)

game_id2017(*game_id)

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

答案 1 :(得分:0)

传递列表:

import numpy as np
import pandas as pd
import requests

def game_id2017(game_id):

    print('Getting data...')
    for a_game_id in range(len(game_id)):
       # use a_game_id

game_id2017([20170201, 20170210, 1])