gpt4 book ai didi

Python:检查每小时的url请求

转载 作者:行者123 更新时间:2023-12-01 05:56:26 25 4
gpt4 key购买 nike

我正在访问 api 并提取 json,但我想确保我保持在每小时请求限制之内,执行此操作的最佳方法是什么?

这是我提出请求的地方:

# return the json
def returnJSONQuestion(id):
url = 'http://someApi.com?index_id={0}&output=json'
format_url = url.format(id)
try:
urlobject = urllib2.urlopen(format_url)
jsondata = json.loads(urlobject.read().decode("utf-8"))
print jsondata
shortRandomSleep()
except urllib2.URLError, e:
print e.reason
except(json.decoder.JSONDecodeError,ValueError):
print 'Decode JSON has failed'
return jsondata

最佳答案

我通常使用一种廉价的技巧,通过检查当前时间使脚本每隔一分钟运行一次。这是该函数的一般形式:

def minuteMod(x, p=0):
import datetime
minute = datetime.datetime.now() + datetime.timedelta(seconds=15)
minute = int(datetime.datetime.strftime(minute, "%M"))
if minute % x == p:
return True
return False

p 是此处的余数,默认值为 0,因此不需要特别传入第二个参数。

所以基本上,如果您希望脚本每隔一分钟运行一次,您可以像这样使用它:

def returnJSONQuestion(id):

if not minuteMod(2):
return None or ''

# rest of the code

如果当前分钟不是偶数,这将停止请求。考虑到这不是最好的方法,您可以使用此函数来缓存结果(取决于是否允许)。所以基本上,你会做这样的事情:

def returnJSONQuestion(id):

if minuteMod(3): # current minute is a factor of 3
return jsonFromCache # open a file and output cached contents
else:
url = 'http://...'
storeJSONToFile(url)
return json

关于Python:检查每小时的url请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12397313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com