Как получить доступ к каждому элементу с определенным ключом в словаре - PullRequest
0 голосов
/ 14 июля 2020

Я извлекаю данные из API, и результат выглядит следующим образом:

{
  "data": {
    "year": "2020",
    "quarter": "1",
    "input": "31080",
    "crosswalk_type": "cbsa-zip",
    "results": [
      {
        "geoid": "90250",
        "res_ratio": 0.006727469865159593,
        "bus_ratio": 0.003776624306425631,
        "oth_ratio": 0.013730729472865928,
        "tot_ratio": 0.006843653586843295
      },
      {
        "geoid": "90046",
        "res_ratio": 0.00655721932565345,
        "bus_ratio": 0.0033795987438371543,
        "oth_ratio": 0.008322582982031358,
        "tot_ratio": 0.006338246981004679
      },
      {
        "geoid": "90025",
        "res_ratio": 0.005284695525716839,
        "bus_ratio": 0.006336137461965276,
        "oth_ratio": 0.0112871723000365,
        "tot_ratio": 0.005749518826354573
      },
      {
        "geoid": "90509",
        "res_ratio": 0,
        "bus_ratio": 0,
        "oth_ratio": 0.000002786268156019872,
        "tot_ratio": 1.6597918089938143e-7
      }
    ]
  }
}

Я хочу извлечь список только элементов с ключом «геоид» (это почтовые индексы). Как пройти по списку, чтобы извлечь эти элементы?

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Вы можете сделать это, указав свой dictionary в переменной a, а затем вызвав между скобками [] имя ключа. Для вашего dictionary и желаемого результата он будет выглядеть так:

a = {
  "data": {
    "year": "2020",
    "quarter": "1",
    "input": "31080",
    "crosswalk_type": "cbsa-zip",
    "results": [
      {
        "geoid": "90250",
        "res_ratio": 0.006727469865159593,
        "bus_ratio": 0.003776624306425631,
        "oth_ratio": 0.013730729472865928,
        "tot_ratio": 0.006843653586843295
      },
      {
        "geoid": "90046",
        "res_ratio": 0.00655721932565345,
        "bus_ratio": 0.0033795987438371543,
        "oth_ratio": 0.008322582982031358,
        "tot_ratio": 0.006338246981004679
      },
      {
        "geoid": "90025",
        "res_ratio": 0.005284695525716839,
        "bus_ratio": 0.006336137461965276,
        "oth_ratio": 0.0112871723000365,
        "tot_ratio": 0.005749518826354573
      },
      {
        "geoid": "90509",
        "res_ratio": 0,
        "bus_ratio": 0,
        "oth_ratio": 0.000002786268156019872,
        "tot_ratio": 1.6597918089938143e-7
      }
    ]
  }
}

geoids = [x['geoid'] for x in a['data']['results']]
1 голос
/ 14 июля 2020
data = {
    "data": {
        "year": "2020",
        "quarter": "1", 
        ...

geoids = [code['geoid'] for code in data['data']['results']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...