перебирайте вложенный список, чтобы получить определенное значение, используя python - PullRequest
0 голосов
/ 16 мая 2019

У меня есть файл json, в котором я пытаюсь извлечь только «код» из нескольких «областей»

Я могу извлекать коды по отдельности, но я чувствую, что должен быть цикл for, который я могу написать для автоматической итерации по каждой «области», поскольку у меня не всегда будет только 3 области.

Я пробовал несколько вариантов вложенного цикла ниже, но я просто не могу его повторить

for areas in data:
   for area in areas:
      print(area['code']

Текущий код Python:

import json

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


    print(data['areas'][0]['area']['code'])
    print(data['areas'][1]['area']['code'])
    print(data['areas'][2]['area']['code'])

Файл JSON:

"areas": [
      {
         "slotId": "slot1",
         "area": {
            "id": "southern",
            "code": "southern",
            "label": "southern area",
            "featureToggles": [],
            "featureChoices": []
         },
         "editable": true,
         "areaCategoryId": null
      },
      {
         "slotId": "slot2",
         "area": {
            "id": "easter",
            "code": "eastern",
            "label": "eastern area",
            "featureToggles": [],
            "featureChoices": []
         },
         "editable": true,
         "areaCategoryId": null
      },
      {
         "slotId": "slot3",
         "area": {
            "id": "western",
            "code": "western",
            "label": "western area",
            "featureToggles": [],
            "featureChoices": []
         },
         "editable": true,
         "areaCategoryId": null
      }

Ожидаемый результат - «код» распечатывается для каждой области. Который это делает правильно. Однако я хочу повторить его, не добавляя новую строку каждый раз, поскольку это просто смешно и утомительно.

1 Ответ

1 голос
/ 16 мая 2019

Доступ data['areas'], который является списком, затем итерируйте его, чтобы получить отдельные area объекты

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

    for area in data['areas']:
        print(area['area']['code'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...