在使用aiohttp session时,应该使用async with语法来确保session在上下文管理器范围内正确打开和关闭。具体示例如下:
import aiohttp
async def fetch_data(url):
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
data = await response.json()
return data
此外,还可以在session关闭时手动释放资源,示例如下:
import aiohttp
async def fetch_data(url):
session = aiohttp.ClientSession()
try:
async with session.get(url) as response:
data = await response.json()
return data
finally:
await session.close()
在这个示例中,aiohttp ClientSession会在try块中创建,然后在finally块中关闭。这确保了即使发生异常,session也会被正确关闭并释放资源。