Как проверить, что ключ / значение существует в списке словаря в Python? - PullRequest
0 голосов
/ 08 июля 2019

Для данного словаря из списка словарей ниже, я хотел бы проверить, существует ли значение ключа "url": "/Province/?ID=83" в списке словарей или нет.

data = {
          "current_page": 1,
          "data": [
              {
                  "columns": [
                      {
                          "key": "ID",
                          "value": "83"
                      },
                      {
                          "key": "Description",
                          "value": "Test Curring"
                      },
                      {
                          "key": "LocalDescription",
                          "value": "tests curring"
                      }
                  ],
                  "important": [
                      {
                          "key": "ID",
                          "value": "83"
                      },
                      {
                          "key": "Description",
                          "value": "Test Curring"
                      },
                      {
                          "key": "LocalDescription",
                          "value": "tests curring"
                      }
                  ],
                  "url": "/Province/?ID=83"
              },
              {
                  "columns": [
                      {
                          "key": "ID",
                          "value": "82"
                      },
                      {
                          "key": "Description",
                          "value": "Test 81 Description"
                      },
                      {
                          "key": "LocalDescription",
                          "value": "Local Test Description"
                      }
                  ],
                  "important": [
                      {
                          "key": "ID",
                          "value": "82"
                      },
                      {
                          "key": "Description",
                          "value": "Test 81 Description"
                      },
                      {
                          "key": "LocalDescription",
                          "value": "Local Test Description"
                      }
                  ],
                  "url": "/Province/?ID=82"
              },
          ]
      }

Я знаю, что он существует, как я могупроверить, чтобы вернуть True или False для его существования?

Я пытался:

list_data = data.get('data')

index = 0
for item in list_data:
  url = item[0].get('url')
  index += 1
  print 'url: ',url

Однако я получил ошибку:

    url = item[0].get('url')
KeyError: 0

Ответы [ 2 ]

5 голосов
/ 08 июля 2019

Это работает, собирая url каждого элемента в data['data'] и проверяя, есть ли в нем нужное значение;предполагается, что каждый элемент в data['data'] имеет элемент url.

"/Province/?ID=83" in [x['url'] for x in data['data']]
2 голосов
/ 08 июля 2019

Предполагая, что схема data согласована, вы можете попробовать это: Он вернет True, если в данных существует key:value, иначе он вернет False.

  def check(data, key, value):
      for i in data['data']:
        try:
          if(i[key]==value): return True
        except:
          pass
      return False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...