2017-12-18 7 views
1

APIリクエストを毎分10コールに制限する必要があります。これを行うためにforループを変更するにはどうすればよいですか?天気Undground APIコールの1分あたりの制限

私はtime.sleep(8)for observationのループに追加しようとしています。

import arrow # learn more: https://python.org/pypi/arrow 
from WunderWeather import weather # learn more: https://python.org/pypi/WunderWeather 
import time 

api_key = '' 
extractor = weather.Extract(api_key) 
zip = '53711' 

# get 20170101 00:00 
begin_date = arrow.get("2017","YYYY") 
# get 20171231 23:00 
end_date = arrow.get("2018","YYYY").shift(hours=-1) 
for date in arrow.Arrow.range('hour',begin_date,end_date): 
    # get date object for feature 
    # http://wunderweather.readthedocs.io/en/latest/WunderWeather.html#WunderWeather.weather.Extract.date 
    date_weather = extractor.date(zip,date.format('YYYYMMDD')) 

    # use shortcut to get observations and data 
    # http://wunderweather.readthedocs.io/en/latest/WunderWeather.html#WunderWeather.date.Observation 
    for observation in date_weather.observations: 
    time.sleep(8) 
    print("Date:",observation.date_pretty) 
    print("Temp:",observation.temp_f) 

答えて

0

API制限をまだ超えている理由については、時間を追加する行と関係がある可能性があります。取得しているAPIの応答に観測値が含まれていない場合、内部ループは実行されません。だからまず、API呼び出しの直後に外側のループで時間の待機を移動しようとします。また、あなたはあなたのデータが欲しいか、あなたは後ろの日に余裕があるかをリアルタイムに応じ http://twistedmatrix.com/documents/9.0.0/core/howto/time.html

+0

に似て呼び出すことができます

http://wunderweather.readthedocs.io/en/latest/WunderWeather.html#WunderWeather.weather.Extract.hourly_daycast

http://wunderweather.readthedocs.io/en/latest/WunderWeather.html#WunderWeather.weather.Extract.today_now

私は '!木星のノートブックにtwisted'をインストールし、奇妙なエラーが一番下にあり、PIP、 "ツイストのために車輪を作るのに失敗しました。"ツイストのインストール方法はありますか? Pipなしでホイールファイルを直接インストールするのはどうですか? – HenryHub

+0

私はこれが動作するようになると、これが私が探しているものだと思います... – HenryHub

0

X秒ごとに実行するようにタスクをスケジュールするためにねじれたからloopingCallのようなものを使用して検討するかもしれない

、あなたが得ることができます1日分のデータを取得するための1回のAPIコール(または、現在の1日の観測の終わりの要約である可能性があります)の過去の日付に関するすべての観測値です。

また、現在の天気を(限界以下で) ごとに取得しようとしている場合は、タイマー付きのループを使用したいと思います。 )しかし、あなたが探しているものに応じて、次のいずれかの電話をしてください。現在のコードは過去の日付を探していますが、これらの他のエンドポイントは当日の日付です。

上記のように、観測ループ内にタイマが存在しない可能性があります。次の例http://wunderweather.readthedocs.io/en/latest/index.html#additional-examples