Как получить индекс списка dict и добавить dict к каждому индексу? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть файл json со следующей структурой:

{
    "Premier League": {
        "abbreviation": "EN_PR",
        "id": 1.0,
        "seasons": [
            {
                "label": "2019/20",
                "id": 274.0
            },
            {
                "label": "2018/19",
                "id": 210.0
            }
        ]
    },
    "UEFA Champions League": {
        "abbreviation": "EU_CL",
        "id": 2.0,
        "seasons": [
            {
                "label": "Champions League Season 2019/2020",
                "id": 288.0
            },
            {
                "label": "2018/19",
                "id": 214.0
            },
        ]
}

Я пытаюсь сделать, пока итерирую, индексировать каждый season_id, позже получим информацию о season_id сделав запрос с этим к другому источнику данных и наконец добавьте информацию, полученную к каждому seasons_id. Так что получается что-то вроде этого, и делайте это для каждого season_id в сезоны. Ниже приведен пример, который поможет вам проиллюстрировать, что я имею в виду, индексируя каждый season id в seasons.

{
        "Premier League": {
            "abbreviation": "EN_PR",
            "id": 1.0,
            "seasons": [
                {
                    "label": "2019/20",
                    "id": 274.0,
                    "teams" :{
                         "Arsenal":{
                             "Players":{}
                                   },

                              }
                },

Вопрос: Как выполнить итерацию по списку сезонов для каждый родительский ключ и добавить информацию к каждому сезонному идентификатору?

Ниже выводит каждый идентификатор сезона, но я не уверен, как получить к ним доступ и добавить к ним информацию.

 for key in parent_key:
    seasons = file[key]['seasons']
    for season in seasons:
        print(season['id'])

1 Ответ

0 голосов
/ 20 февраля 2020

Если возможно, вы можете обнаружить, что если вы часто обновляете элементы по идентификатору, то анализ ваших данных в следующем формате будет намного проще:

leagues = { 
    1: {
        "name": "Premier_League",
        "seasons": { 
            274: {
                "label": "2019/20"
            }
        }
    }
}

Затем, учитывая league_id и a season_id, вы можете легко получить доступ к сезону, связанному с ним, как leagues[league_id]["seasons"][season_id]. Вы также можете обновить информацию в этом сезоне с помощью:

league_id = 1
season_id = 274
leagues[league_id]["seasons"][season_id]["teams"] = { "Arsenal": { "players": {}}}
print(leagues)

# {1: {'name': 'Premier_League', 'seasons': {274: {'label': '2019/20', 'teams': {'Arsenal': {'players': {}}}}}}}

Как правило, dicts хороши для быстрого и простого поиска, когда вы знаете ключ, который пытаетесь найти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...