链三丰 区块链研究实验室 今天
收录于话题
#Python1
#区块链技术33
#区块链44
#API1
#区块链应用30
import requestsresponse = requests.get("http://example.com/")print(response)
import requestsfor i in range(10): response = requests.get("http://example.com/") print(response)每次我对进行API调用时example.com,我都必须完成:
import requestsimport osapi_key = os.getenv('ALPHAVANTAGE_API_KEY')url = 'https://www.alphavantage.co/query?function=OVERVIEW&symbol={}&apikey={}'symbols = ['AAPL', 'GOOG', 'TSLA', 'MSFT', 'PEP']results = []for symbol in symbols: response = requests.get(url.format(symbol, api_key)) results.append(response.json())
此时必须等待大约1.5秒才能进行5个API调用,然后需要11秒才能进行50个API调用,需要50秒才能进行135个API调用……
cook_burger()cook_vegetables()
async def cook_meal(): await asyncio.gather(cook_burger(), cook_vegetables())asyncio.run(cook_meal())
然后,我们可以异步运行我们的代码。
import asyncioimport aiohttpimport osimport timeapi_key = os.getenv('ALPHAVANTAGE_API_KEY')url = 'https://www.alphavantage.co/query?function=OVERVIEW&symbol={}&apikey={}'symbols = ['AAPL', 'GOOG', 'TSLA', 'MSFT', 'PEP']results = []async def get_symbols(): async with aiohttp.ClientSession() as session: for symbol in symbols: response = await session.get(url.format(symbol, api_key), ssl=False)asyncio.run(get_symbols())
loop = asyncio.get_event_loop()results = loop.run_until_complete(get_symbols())loop.close()
async def get_symbols(): async with aiohttp.ClientSession() as session: for symbol in symbols: response = await session.get(url.format(symbol, api_key), ssl=False)
import asyncioimport aiohttpimport osimport timeapi_key = os.getenv('ALPHAVANTAGE_API_KEY')url = 'https://www.alphavantage.co/query?function=OVERVIEW&symbol={}&apikey={}'symbols = ['AAPL', 'GOOG', 'TSLA', 'MSFT', 'PEP']results = []def get_tasks(session): tasks = [] for symbol in symbols: tasks.append(session.get(url.format(symbol, api_key), ssl=False)) return tasksasync def get_symbols(): async with aiohttp.ClientSession() as session: tasks = get_tasks(session) responses = await asyncio.gather(*tasks)asyncio.run(get_symbols())
tasks = [session.get(URL.format(symbol, API_KEY), ssl=False) for symbol in symbols]
responses = await asyncio.gather(*tasks)我们将等待所有任务完成并将它们放入responses对象中。
responses = await asyncio.gather(session.get(URL.format('IBM', API_KEY), ssl=False), session.get(URL.format('AAPL', API_KEY), ssl=False), session.get(URL.format('MSFT', API_KEY), ssl=False))
tasks.append(session.get(url.format(symbol, api_key), ssl=False))
tasks.append(asyncio.create_task(session.get(url.format(symbol, api_key), ssl=False)))
链三丰
你的赞赏是我持续不断的动力,谢
阅读 30
赞在看
联系客服