【问题标题】:How to check Key/Value exists in List of Dictionary in Python?如何检查 Python 字典列表中是否存在键/值?
【发布时间】:2019-07-08 11:59:56
【问题描述】:

对于给定的字典列表字典,我想检查键值"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

【问题讨论】:

  • @ScottHunter,感谢您的指出。我已经编辑添加了我的尝试。你能检查一下吗?谢谢

标签: python-2.7 list dictionary


【解决方案1】:

这是通过收集data['data'] 中每个项目的url 并查看其中是否包含所需的值来工作的;它假定data['data'] 中的每个项目都有一个url 元素。

"/Province/?ID=83" in [x['url'] for x in data['data']]

【讨论】:

  • 一直运行良好,非常感谢您的帮助。 :)
【解决方案2】:

假设data的schema是一致的,你可以试试这个: 如果数据中存在key:value,它将返回True,否则将返回False。

  def check(data, key, value):
      for i in data['data']:
        try:
          if(i[key]==value): return True
        except:
          pass
      return False

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 2012-03-27
    • 2016-03-20
    • 2018-04-10
    • 2018-12-08
    • 2012-06-15
    • 2022-01-22
    • 2017-06-23
    相关资源
    最近更新 更多