Добавление Python добавляет неправильные данные - PullRequest
0 голосов
/ 09 марта 2019

У меня есть программа на Python, которая получает и извлекает информацию для баскетбольных игр nba.В моем примере играется 6 игр, я получаю всю информацию об играх и помещаю ее в переменную gameInfo.gameInfo верна, когда я ее печатаю, все получается нормально, каждая игра верна.Но когда я finalPush ["games"]. Append (gameInfo), он добавляет самое последнее количество gameInfo i раз, поэтому конечный результат finalPush ["games"] - последняя добавленная игра 6 раз.Я хочу получить информацию обо всех 6 играх в finalPush ["games"].Буду признателен за любую помощь, я не могу понять, что я делаю неправильно.

def add_game_info_to_json():
finalPush = {"games": []}
gameInfo = {
    "teamHome": "",
    "teamAway": "",
    "recordHome": "",
    "recordAway": "",
    "colorHome": "",
    "colorAway": "",
    "line": "",
    "overunder": "",
    "homeTextColor": "",
    "awayTextColor": "",
    "homeIndex": "",
    "awayIndex": "",
    "time": ""
}

with open('teamMaster.json') as f:
    data = json.load(f)

i = 0
z = 0

while i < (len(teams_list)/2):
    gameInfo.update(time = game_status_list[i])
    gameInfo.update(teamAway = teams_list[i+z])
    gameInfo.update(recordAway = records_list[i + z])
    gameInfo.update(line = betting_list[i + z])
    for team in data:
        if team == gameInfo["teamAway"]:
            gameInfo.update(colorAway = data[team]["color"])
            gameInfo.update(awayTextColor = data[team]["textColor"])
            gameInfo.update(awayIndex = data[team]["index"])

    z += 1
    gameInfo.update(teamHome = teams_list[i+z])
    gameInfo.update(recordHome = records_list[i + z])
    gameInfo.update(overunder = betting_list[i + z])
    for team in data:
        if team == gameInfo["teamHome"]:
            gameInfo.update(colorHome = data[team]["color"])
            gameInfo.update(homeTextColor = data[team]["textColor"])
            gameInfo.update(homeIndex = data[team]["index"])
    print(gameInfo)
    i += 1
    finalPush["games"].append(gameInfo)
    print(finalPush)

1 Ответ

1 голос
/ 09 марта 2019

Вы добавляете 6 раз тот же диктовку, которую продолжаете обновлять.

Вы должны приложить копию своего диктанта:

finalPush["games"].append(gameInfo.copy())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...