请使用以下代码:
def test():
conn = pymysql.connect(host=rds_host, user=name, password=password, db=db_name, charset='utf8')
curs = conn.cursor(pymysql.cursors.DictCursor)
sql = "sql"
curs.execute(sql)
da = curs.fetchall()
df = pd.DataFrame(data=da, columns=['sale_date', 'total_amt'])
df['total_amt'] = df['total_amt']
slack_message = {
'text': tabulate(df, tablefmt="fancy_grid",headers='keys',stralign='left')
}
req = Request(HOOK_URL, json.dumps(slack_message).encode('utf-8'))
try:
response = urlopen(req)
response.read()
logger.info("Message posted")
except HTTPError as e:
logger.error("Request failed: %d %s", e.code, e.reason)
except URLError as e:
logger.error("Server connection failed: %s", e.reason)
当我在pycharm中运行代码时,它运行得很好,pycharm输出:
松弛输出:
松弛输出(以韩语添加的列):
1条答案
按热度按时间fwzugrvs1#
问题是,对于格式化常规文本(比如你在聊天中所写的内容),Slack没有使用固定间距的字体。这意味着输出不会对齐(正如你所经历的)。
要解决这个问题,你应该把你想格式化的消息部分放在'''里面。这会告诉Slack使用一个代码块来格式化内容,它有固定间距的字体,并且它应该和Pycharm的输出一样。
因此,在查看代码时,您必须添加沿着内容:
根据你使用的Python版本,f字符串可能不可用。如果是这种情况,请使用其他支持的格式化功能。