簡體   English   中英

從多個字典中解析鍵值Python

[英]Parsing key-values from multiple dictionaries Python

我正在嘗試開發一個簡單的Web應用程序,該應用程序基於用戶輸入的“ carpark_number”(例如“ SK61”)值提供“ carpark_data”。 我曾嘗試研究如何基於給定的key:Python字典值進行排序,但是我已經陷入僵局。

現在,我在下面有了這段代碼,對我來說,它是一個靜態站點,用於從API提供數據。 我如何為我修改此代碼,以便為希望根據他決定的“ carpark_number”獲取“ carpark_data”的用戶提供服務?

# Set the request parameters
url = "https://api.data.gov.sg/v1/transport/carpark-availability"

# Do the HTTP get request
response = requests.get(url)

# Check for HTTP codes other than 200
if response.status_code != 200:
    print('Status:', response.status_code, 'Problem with the request. Exiting.')
    exit()
else:
    jack = response.json()
    daniel = jack['items'][0]["carpark_data"]
    print(json.dumps(daniel, indent=4)) #prints prettified jSON Data

樣本輸出:

[
  {
    "carpark_info": [
        {
          "total_lots": "100",
          "lot_type": "C",
          "lots_available": "72"
        }
    ],
    "carpark_number": "SK61",
    "update_datetime": "2018-06-16T02:47:59"
  },

  {
    "carpark_info": [
      {
        "total_lots": "100",
        "lot_type": "C",
        "lots_available": "72"
      }
    ],
    "carpark_number": "SK61",
    "update_datetime": "2018-06-16T02:47:59"
  }
]

我假設您希望能夠將結果篩選為用戶感興趣的結果? 如果是這樣,這應該可以解決問題:

l1 = [
      {
        "carpark_info": [
            {
              "total_lots": "100",
              "lot_type": "C",
              "lots_available": "72"
            }
        ],
        "carpark_number": "SK61",
        "update_datetime": "2018-06-16T02:47:59"
      },

      {
        "carpark_info": [
          {
            "total_lots": "100",
            "lot_type": "C",
            "lots_available": "72"
          }
        ],
        "carpark_number": "SK62",
        "update_datetime": "2018-06-16T02:47:59"
      }
    ]

wanted_carpark = 'SK62'

# use get so it doesn't fail on no number
list(filter(lambda x: x.get('carpark_number', None) == wanted_carpark, l1))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM