我想将 Pandas 数据帧
to_csv()
方法的结果作为文件发布到 slack,但 slack SDK files_upload()
需要参数 file
中的文件名。这是我的代码:
from slack_sdk import WebClient
client = WebClient(os.environ["slack_token"])
csv_file = df.to_csv()
response = self.client.files_upload(
file=csv_file,
initial_comment=message_text,
thread_ts=thread_ts,
)
此代码的问题在于,该方法将文件竞赛作为文件名,并会引发错误,因为它找不到该文件。
有什么方法可以将变量的文本内容作为文件发送吗?
Python 中的 StringIO 模块
“StringIO 模块是一个内存中的类似文件的对象。该对象可以用作大多数需要标准文件对象的函数的输入或输出。”
csv_file = StringIO(df.to_csv())
response = self.client.files_upload(
file=csv_file,
initial_comment=message_text,
thread_ts=thread_ts,
)