使用 Requests 从虚拟路口 API 获取天气数据

问题描述

我正在尝试从 API 访问历史天气数据。我从这里获得了 API 密钥:https://www.visualcrossing.com/weather/weather-data-services#/timeline

我正在尝试此操作,但一直收到错误 404。我不确定这是因为 API 问题还是我的代码有问题。

import requests
r = requests.get("https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London,UK/2021-01-01/2021-03-28?key=AXSSS")
print(r)

文档:https://www.visualcrossing.com/resources/documentation/weather-api/timeline-weather-api/

如何获取数据?

解决方法

我测试了您提供的网站并创建了一个帐户和api密钥以获取伦敦是否有数据,您也可以使用它

代码:

import requests

r = requests.get("https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London?unitGroup=metric&key=PPKBBJ7637X5SNDUG6HZA23X7")

print(r)

输出:

<Response [200]>

现在你也可以通过 json() 方法访问数据了:

print(r.json())

输出是如此巨大,但您的问题是两件事:

1-API 密钥不正确(我测试过) 2-您应该购买高级计划

获取日期范围的网址将如下所示:

https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/London/2021-1-1/2021-1-5?unitGroup=us&key=PPKBBJ7637X5SNDUG6HZA23X7

和您提供的日期范围,每个请求的行太多,您应该购买高级计划

否则你会在他们自己的网站上看到这个错误:

Your plan allows up to 100 rows per request. This query will return (yyy) rows. Please smaller date range or fewer locations.

Our paid plans offer increased query limits

如果您不想支付付费计划,您可以使用此链接使用 github 公共 api,很多免费且无需 api 密钥您可以使用

Github public apis