我可以在英国开放天气图中使用 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 的天气结果,那么您将取回数据: