如何在 openweathermap 的变量中查找 "rain"

How to find "rain" in a variable for openweathermap

我正在尝试制作一个简单的程序,它会告诉您今天是否需要给植物浇水(看看今天会不会下雨)。我正在使用 openweathermap api 来这样做。 api 不像温度或湿度那样将雨作为变量包含在内,相反,如果下雨作为天气变量的一部分,它只会显示为“雨”。

当我 运行 我下面的代码时,即使它正在查找的变量包括雨,它也永远不知道正在下雨。我想知道如何找到“rain”这个词,如果它在变量中找到它,则相应地打印一条消息。

在 运行ning 我当前的代码之后,如果我打印 weathervar:

[{'id': 502, 'main': 'Rain', 'description': 'heavy intensity rain', 'icon': '10n'}]

即使变量包含“rain”,我的代码也认为它不包含。

import requests, json
api_key = "someapikey"
base_url = "http://api.openweathermap.org/data/2.5/weather?"
city_name = ("Brunei")
complete_url = base_url + "appid=" + api_key + "&q=" + city_name
response = requests.get(complete_url)
x = response.json()
if x["cod"] != "404":
    y = x["main"]
    current_temperature = y["temp"]
    weathervar = x["weather"]
else:
    print(" City Not Found ")

if 'Rain' in weathervar:
    print("You don't need to water your plants today.")
else:
    print("You need to water your plants today")
    print(weathervar)

因为weathervar是一个字典列表,你应该检查

if any(item['main'] == 'Rain' for item in weathervar):

尝试使用:

import requests, json
api_key = "someapikey"
base_url = "http://api.openweathermap.org/data/2.5/weather?"
city_name = ("Brunei")
complete_url = base_url + "appid=" + api_key + "&q=" + city_name
response = requests.get(complete_url)
x = response.json()
if x["cod"] != "404":
        y = x["main"]
        current_temperature = y["temp"]
        weathervar = x["weather"][0]

else:
    print(" City Not Found ")

if 'Rain' in weathervar.values():
    print("You don't need to water your plants today.")

else:
    print("You need to water your plants today")
    print(weathervar)

首先,您必须将数组转换为适当的字典。然后你可以用 .values().

查询字典的值