【发布时间】:2021-12-16 14:59:52
【问题描述】:
要求
我的要求是让 Python 代码从数据库中提取一些记录,格式化并发布到 Slack 频道。
计划的方法
由于 Slack 消息块是 JSON,我打算
1. 为每个块创建类似 JSON 的模板。例如
json_template_str = '{{
"type": "section",
"fields": [
{{
"type": "mrkdwn",
"text": "Today *{total_val}* customers saved {percent_derived}%."
}}
]
}}'
2. 从数据库中提取记录到数据帧。
3. 循环遍历数据帧并使用 .format(**locals())) 之类的东西批量替换 {var} 变量
4. 使用 Slack API 发布格式化的 JSON
问题
我以前没有使用过数据框。 完成 第 3 步 的最佳方法是什么?目前我是
3.1 逐个循环遍历数据框对象for i, df_row in df.iterrows():
3.2分配
total_val= df_row['total_val']
percent_derived= df_row['percent_derived']
3.3 在循环格式中添加str到列表block.append(json.loads(json_template_str.format(**locals()))
我试图在 dataframe 中使用 assign() 方法,但无法找到一种像 lambda 函数一样使用的方法来创建一个具有我可以使用的预期值的新列。
作为 pandas 的新手,我觉得可能有更有效的方法来做到这一点(甚至可能涉及更改 JSON 模板字符串 - 我完全可以做到)。很高兴听到想法和想法。
感谢您的宝贵时间。
【问题讨论】:
标签: python pandas string dataframe slack-block-kit