我可以在英国开放天气图中使用 post 代码搜索吗
Can i search by post code in UK open weather map
我根据网上找到的教程制作了一个非常简单的天气应用程序。我正在使用请求模块,我正在尝试调用英国 post 代码 GU27PG 的天气。我正在使用 https://openweathermap.org/current#zip 中的文档来构建我的 url。这是我的代码:
import requests
import configparser
def get_api_key():
config = configparser.ConfigParser()
config.read('config.ini')
return config['openweathermap']['api']
def get_weather_results(zip_code, country_code, api_key):
api_url = 'http://api.openweathermap.org/data/2.5/weather?zip={},{}&appid={}'.format(zip_code, country_code, api_key)
r = requests.get(api_url)
return r.json()
print(get_weather_results("GU27PG", "UK", get_api_key()))
当我 运行 它返回这个:
{'cod': '404', 'message': 'city not found'}
这是一个有效的 post代码和国家代码,我很确定。我曾经收到错误 401,这意味着我的 api 键未激活但已停止,因此我的 api 键确实有效。
任何帮助将不胜感激
您链接到的文档非常模糊,所以我对您遇到障碍并不感到惊讶。我正要回复说使用 zip
参数似乎无法搜索英国邮政编码,但通过实验我发现了两件事:
- 它只支持英国外码(即邮政编码的“前半部分”)
- 您需要的国家代码是 GB,而不是 UK。
因此在您的示例中,如果您要求它打印 GU2,GB
的天气结果,那么您将取回数据:
我根据网上找到的教程制作了一个非常简单的天气应用程序。我正在使用请求模块,我正在尝试调用英国 post 代码 GU27PG 的天气。我正在使用 https://openweathermap.org/current#zip 中的文档来构建我的 url。这是我的代码:
import requests
import configparser
def get_api_key():
config = configparser.ConfigParser()
config.read('config.ini')
return config['openweathermap']['api']
def get_weather_results(zip_code, country_code, api_key):
api_url = 'http://api.openweathermap.org/data/2.5/weather?zip={},{}&appid={}'.format(zip_code, country_code, api_key)
r = requests.get(api_url)
return r.json()
print(get_weather_results("GU27PG", "UK", get_api_key()))
当我 运行 它返回这个:
{'cod': '404', 'message': 'city not found'}
这是一个有效的 post代码和国家代码,我很确定。我曾经收到错误 401,这意味着我的 api 键未激活但已停止,因此我的 api 键确实有效。 任何帮助将不胜感激
您链接到的文档非常模糊,所以我对您遇到障碍并不感到惊讶。我正要回复说使用 zip
参数似乎无法搜索英国邮政编码,但通过实验我发现了两件事:
- 它只支持英国外码(即邮政编码的“前半部分”)
- 您需要的国家代码是 GB,而不是 UK。
因此在您的示例中,如果您要求它打印 GU2,GB
的天气结果,那么您将取回数据: