如何使用 pymsteams 发送 df 变量的结果(python ms teams)

How to send results of a df variable using pymsteams (python ms teams)

显然,pymsteams 的标签甚至不存在,所以我真的希望有人能帮我解决这个问题。我想做的是将 python 脚本写入 运行 查询并通过 MS Teams 发送结果。我能够通过 myTeamsMessage.text("Hello World") 从 python 脚本成功发送文本,但不是我的变量 df

的结果

我试过在 YouTube 上查找视频和浏览网页,但似乎只有发送文本的示例。也许有人知道解决方法?或者更好的是,一个实际的解决方案?

import pymsteams
import pyodbc
import pandas as pd
import numpy as np

conn = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};"
                      "Server=***-***-***.***.***.com;"
                      "Database=IA;"
                      "Trusted_Connection=no;"
                      "UID=***;"
                      "PWD=***")

query = "SELECT * FROM [IP].[dbo].[vFEP]"
df = pd.read_sql(query, conn)

myTeamsMessage = 
pymsteams.connectorcard("https://outlook.office.com/webhook/***")
myTeamsMessage.text("Hello World")
myTeamsMessage.send()


# def sleeve(df):
#    print(df)


# sleeve(df)

# myTeamsMessage = 
# pymsteams.connectorcard("https://outlook.office.com/webhook/***")
# myTeamsMessage.text(sleeve(df))
# myTeamsMessage.send()

这是我收到的错误。

"pymsteams.TeamsWebhookException: Summary or Text is required."

我希望完成的是通过 MS Teams 发送 df 的结果。同样,我可以通过“”发送文本,但仅限于此。任何帮助是极大的赞赏。谢谢!

对于名为 df 的 pandas DataFrame,print(df) 只会将 DataFrame 转储到控制台。如果要将 DataFrame 的字符串表示形式发送到 str 变量而不是控制台,请使用 s = df.to_string().

您还可以向 Teams 发送包含 HTML 格式的文本字符串,以在输出消息中获取格式化表格。

尝试更改 sleeve 函数以使用 pandas to_html() 函数:

def sleeve(df):
    df.to_html()