如何在请求/aiohttp 中的 PUT 调用中使用数据帧
How to use a dataframe in a PUT call in requests / aiohttp
我正在尝试通过 API 与应用程序进行交互。根据文档,我应该能够通过 PUT 调用上传自定义 "csv" 文件。
根据文档,调用应如下所示:
PUT [URL]
Host: [host domain]
Accept: application/json
Content-Length: 79182
Content-Type: multipart/form-data; boundary=c40cf424beg7650b
--c40cf424beg7650b
Content-Disposition: form-data; name="file"; filename="my_csv.csv"
Content-Type: application/octet-stream
56.5770
32.5669
...
30.9038
20.4441
--c40cf424beg7650b--
该文件应包含 8760 个单独的条目,我目前已将其存储在数据框中。我想知道是否有人知道如何在 aiohttp.ClientSession.put() 调用中传递此 DataFrame。
非常感谢!
我不知道你在代码方面做了什么尝试。但是这里有一个使用aiohttp上传文件的例子。
示例:
session = aiohttp.ClientSession()
url = '<api-url>'
files = {'file': open('report.xls', 'rb')}
await session.put(url, data=files)
一个小更新,我找到了一个相对简单的方法来避免使用缓冲数据。 aiohttp 有一个内置的 FormData 对象,可以帮助我解决这种特殊情况。当将 Pandas DataFrame 中的列作为 Pandas 系列一一传递时,这非常有效。
import aiohttp
data = aiohttp.FormData()
data.add_field('file', relevant_data, filename=filename)
async with aiohttp.ClientSession() as session:
await session.put(url, data=data)
我正在尝试通过 API 与应用程序进行交互。根据文档,我应该能够通过 PUT 调用上传自定义 "csv" 文件。
根据文档,调用应如下所示:
PUT [URL]
Host: [host domain]
Accept: application/json
Content-Length: 79182
Content-Type: multipart/form-data; boundary=c40cf424beg7650b
--c40cf424beg7650b
Content-Disposition: form-data; name="file"; filename="my_csv.csv"
Content-Type: application/octet-stream
56.5770
32.5669
...
30.9038
20.4441
--c40cf424beg7650b--
该文件应包含 8760 个单独的条目,我目前已将其存储在数据框中。我想知道是否有人知道如何在 aiohttp.ClientSession.put() 调用中传递此 DataFrame。
非常感谢!
我不知道你在代码方面做了什么尝试。但是这里有一个使用aiohttp上传文件的例子。
示例:
session = aiohttp.ClientSession()
url = '<api-url>'
files = {'file': open('report.xls', 'rb')}
await session.put(url, data=files)
一个小更新,我找到了一个相对简单的方法来避免使用缓冲数据。 aiohttp 有一个内置的 FormData 对象,可以帮助我解决这种特殊情况。当将 Pandas DataFrame 中的列作为 Pandas 系列一一传递时,这非常有效。
import aiohttp
data = aiohttp.FormData()
data.add_field('file', relevant_data, filename=filename)
async with aiohttp.ClientSession() as session:
await session.put(url, data=data)