這里是我的問題。 我需要呼叫這個API > https://openweathermap.org/api/one-call-api。
。我的目標是在一個資料框架中獲取特定城市串列中未來7天的每日天氣預報(基于其GPS坐標)。我需要對35個城市進行互動,但這里有一個包含2個城市的樣本,以及一個獲得所需密鑰的靜態方法。
所以我目前已經做到了 :
import requests
url = "https://api.openweathermap.org/data/2.5/onecall"/span>
lat = ["48.6355232"/span>, "47.3215806"/span>]
lon = ["-1.5102571"/span>, "5.0414701"/span>]
output_results = []
for lat,lon in zip(lat, lon)。
r = requests. get(url, params={"lat":lat, "lon":lon, "exclude": "hourly,current,minuteely", "appid":"be02e7c76c38ec4e28e37a166d60abb7"})
output_results.append(r.json())
print(output_results[0]["lat"/span>]) #latitude] ["lat"]。
print(output_results[0]["lon"] ) #longitude]。
print(output_results[0]["daily"][0]["dt"] #date] [span class="hljs-string">"dt"]。
print(output_results[0]["dt"]。 string">"daily"][0]["temp"]["day"] #temperature[/span]]。
print(output_results[0]["day"][0]["wind_speed"] ) #wind speed][span class="hljs-string">"wind_speed"]
print(output_results[0]["daily"][0]["clouds"] # clouds密度。
我怎樣才能遍歷坐標串列和我需要的鍵呢?
我想把我的最終資料框架構造成這樣。 df結構
謝謝你的幫助!
uj5u.com熱心網友回復:
也許這就是你所希望達到的目的:-
import requests
import pandas as pd
from datetime import datetime
url = "https://api.openweathermap.org/data/2.5/onecall"/span>
lat = ["48.6355232"/span>, "47.3215806"/span>]
lon = ["-1.5102571"/span>, "5.0414701"/span>]
params = {"exclude": "hourly,current,minuteely"。
"appid": "be02e7c76c38ec4e28e37a166d60abb7"}
columns = ['Date'/span>, 'Latitude'/span>, 'Longitude'/span>,
'溫度', '風速', '云']
資料 = []
with requests.Session() as session:
for lat, lon in zip(lat, lon):
params['lat'] = lat
params['lon'] = lon
r = session.get(url, params=params)
r.raise_for_status()
d = r.json()['daily'][0]
dt = datetime.fromtimestamp(d['dt'/span>]).strftime('%d/%m/%Y'/span>)
DATA.append([dt, lat, lon, d['temp']['day']。
d['wind_speed'], d['clouds']])
df = pd.DataFrame(DATA, columns=columns)
print(df)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/326892.html
標籤:
上一篇:NumPy陣列的計算時間問題
