在这种情况下,您可以使用缓存来存储已加载的API数据,并在下一次请求时检查缓存是否存在数据。如果缓存存在数据,则直接从缓存中获取数据,而不需要再次加载API数据。
以下是一个示例代码,展示了如何使用缓存来加载和存储API数据:
import time
import requests
import json
# 全局变量,用于存储缓存数据
cache_data = None
cache_timestamp = None
def load_data_from_api():
# 模拟API加载数据的时间
time.sleep(120)
# 使用requests库发送API请求并获取数据
response = requests.get('https://api.example.com/data')
data = response.json()
# 更新缓存数据和时间戳
global cache_data, cache_timestamp
cache_data = data
cache_timestamp = time.time()
return data
def get_data():
global cache_data, cache_timestamp
# 检查缓存是否存在数据,并且数据未过期(假设过期时间为5分钟)
if cache_data is not None and (time.time() - cache_timestamp) < 300:
return cache_data
else:
# 如果缓存不存在或数据已过期,则重新加载数据
data = load_data_from_api()
return data
# 使用get_data()函数来获取数据
data = get_data()
print(data)
在这个示例中,load_data_from_api()
函数模拟了API加载数据需要2分钟的情况。在加载完数据后,它将数据存储在cache_data
变量中,并更新cache_timestamp
变量以记录缓存的时间戳。
get_data()
函数首先检查缓存是否存在数据,并且数据是否未过期。如果缓存存在且数据未过期,则直接返回缓存数据。否则,它将调用load_data_from_api()
函数重新加载数据,并更新缓存数据和时间戳。
通过使用缓存,您可以避免在每次请求时都需要重新加载数据,提高了数据获取的效率。