小编Rit*_*tel的帖子

如何解决 OSError: [Errno 24] 使用 aiohttp 对三个不同 URL 执行 POST 调用时打开的文件过多?

我有 csv 文件,其中一列用作在两个 POST 方法调用中传递的数据。我有三个不同的 URL,需要随后在代码中调用。我使用 aiohttp 定义会话并循环列长度(其单元格值在两个 POST 调用中发送)。从响应中获取的数据存储在一个列表中,并用于具有不同 url 的第三个 POST 调用。

前两个调用似乎执行得很好而且相当快(我打印了它们的响应并进行了验证),但是当执行到第三个调用时,出现此错误:

OSError:[Errno 24]打开的文件太多

我尝试了一些建议connector=aiohttp.TCPConnector(verify_ssl=False)aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) 但这不起作用的解决方案中指定。解决这个问题的最佳方法应该是什么?我当前使用的第二个 URL 是 HTTP URL,即 localhost url,最终将更改为基于 https 云的 url。

下面是描述这种情况的示例代码:

import aiohttp
import pandas as pd
import asyncio
import requests
import json
import time

start_time = time.time()

df = pd.read_csv('Sample.csv', header=None, dtype=str)
RequestBodyvalues = df.iloc[:, [0]].values

async def get_FirstUrlresponse(session, url, requestBody, headers):
    async with session.post(url, data = json.dumps(requestBody), headers = headers) as resp:
        response = await resp.json()
        return …
Run Code Online (Sandbox Code Playgroud)

python asynchronous python-asyncio aiohttp

4
推荐指数
1
解决办法
3589
查看次数

标签 统计

aiohttp ×1

asynchronous ×1

python ×1

python-asyncio ×1