【问题标题】:How to send results of a df variable using pymsteams (python ms teams)如何使用 pymsteams(python ms 团队)发送 df 变量的结果
【发布时间】:2019-08-02 16:24:53
【问题描述】:

显然,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:需要摘要或文本。”

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

【问题讨论】:

  • 您的sleeve 函数使用print 将DataFrame 打印到控制台,但 返回str。您的函数返回None,这就是您要作为消息发送的内容。听起来你真的想做一些更像this的事情。
  • 感谢您的回复,遗憾的是我无法理解如何实现他们所说的内容。我不太关心被注释掉的内容,因为我只是在做实验,我只是将它包括在内以展示我正在尝试的内容。我的罪魁祸首是 myTeamsMessage.text("Hello World") 我只能在这个函数中使用文本。我真正想做的是像这样在我的 df 变量中发送结果。 myTeamsMessage.text(df) 类似于打印,但显然它不起作用。很抱歉,如果您提到的实际上是答案,我只是无法理解。我是新人。
  • myTeamsMessage.text(df.to_string()) ...怎么样?
  • 成功了,非常感谢!

标签: sql-server python-3.x pyodbc microsoft-teams


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    def sleeve(df):
        df.to_html()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-21
      • 2021-08-08
      • 2022-01-21
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多