如何将pandas数据框导出为松弛?
df.to_json()似乎是一个潜在的候选者,再加上松弛的传入webhook,但是然后解析消息显示为一个漂亮的降价/ html-ized表对我来说并不明显。
长时间听众,第一次打电话的人,请放轻松我...
答案 0 :(得分:3)
Slack似乎没有采用任意HTML输入或格式化带有转义换行符的文本,这限制了纯文本。 tabulate
如另一个答案中所建议的那样,但是如果你想要一些自包含的东西,那就可以了。假设您的数据框位于df
print(repr(df))
之类的内容。对于我手边的数据框,这是你在点击输入之前在松弛聊天框中输入的内容。
```
code sid state triplet
0 SCAN 2057 AL 2057:AL:SCAN
1 SNOW ABY CA ABY:CA:SNOW
2 SNOW 15A21 MT 15A21:MT:SNOW
3 COOP 0010 ID 0010:ID:COOP
4 SNOW 1F01A BC 1F01A:BC:SNOW
```
如果您想将其整合为Web服务,请将复制/粘贴内容替换为Web服务/挂钩。
答案 1 :(得分:2)
DataFrame上有一个{
"query": {
"bool": {
"must_not": [
{
"terms": {
"assignedArticleList.assignedArticleId": [
1,
2,
3,
4
]
}
}
]
}
}
}
方法,因此可能会有效。但如果您只是想剪切和粘贴,Tabulate是一个不错的选择。来自文档:
.to_html()
返回
from tabulate import tabulate
df = pd.DataFrame([["Name","Age"],["Alice",24],["Bob",19]])
print tabulate(df, tablefmt="grid")
将其粘贴到Slack的代码块中,它应该很好地显示出来。
答案 2 :(得分:0)
对于希望查询Postgres数据库表并将其以表格格式发送到slack的任何人。
Postgres DB连接模块
print(str(x))
“广播到频道”松弛模块
def dbConnect (db_parm, username_parm, host_parm, pw_parm):
# Parse in connection information
credentials = {'host': host_parm, 'database': db_parm, 'user': username_parm, 'password': pw_parm}
conn = psycopg2.connect(**credentials)
conn.autocommit = True # auto-commit each entry to the database
conn.cursor_factory = RealDictCursor
cur = conn.cursor()
print ("Connected Successfully to DB: " + str(db_parm) + "@" + str(host_parm))
return conn, cur
准备Slack消息模块
def slackBot(self, message):
webhook_url = self.slack_incoming_webhook
slack_data = {"text":"``` " + str(message) + " ``` <!here>"}
header = {'Content-Type': 'application/json'}
response = requests.post(webhook_url, json=slack_data,headers=header)
if response.status_code != 200:
raise ValueError(
'Request to slack returned an error %s, the response is:\n%s'
% (response.status_code, response.text)
)