
影刀RPA Markdown文档自动生成从数据到格式化文档一步到位作者林焱影刀采集完数据后经常需要输出成Markdown格式——方便发布到飞书文档、语雀、GitHub等支持Markdown的平台。Python原生就支持字符串拼接生成Markdown不需要任何库。Markdown基础生成defgenerate_report(data,title):生成Markdown报告lines[]lines.append(f#{title})lines.append(f\n 生成时间{datetime.now().strftime(%Y-%m-%d %H:%M:%S)})lines.append()# 表格ifdata:headerslist(data[0].keys())lines.append(| | .join(headers) |)lines.append(| | .join([---]*len(headers)) |)forrowindata:[video(video-BrEkQ4nj-1783576863781)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://v-blog.csdnimg.cn/asset/f4faa587144cb7070f19e8b36813806b/cover/Cover0.jpg)(title-店群矩阵自动化突破运营极限)]values[str(row.get(h,))forhinheaders]lines.append(| | .join(values) |)lines.append()return\n.join(lines)# 使用reportgenerate_report(sales_data,每日销售报表)withopen(每日销售报表.md,w,encodingutf-8)asf:f.write(report)复杂Markdown生成含统计、列表、引用defadvanced_report(data,stats):md[]# 标题md.append(# 数据监控周报)md.append(f 报告周期{stats[start]}~{stats[end]})md.append()# 概览引用块md.append(## 核心指标)md.append(f - 总数据量**{stats[total]}** 条)md.append(f - 新增**{stats[new]}** 条 ({stats[growth]}%))md.append(f - 异常**{stats[anomalies]}** 条)md.append()# 表格md.append(## 详细数据)headers[序号,名称,数值,变化,状态]md.append(| | .join(headers) |)md.append(| | .join([---]*len(headers)) |)fori,iteminenumerate(data,1):status_icon✅ifitem[status]normalelse⚠️md.append(f|{i}|{item[name]}|{item[value]}|{item[change]}|{status_icon}|)md.append()# 异常详情anomalies[dfordindataifd[status]!normal]ifanomalies:md.append(## ⚠️ 异常项)forainanomalies:md.append(f- **{a[name]}**{a[value]}{a[change]}{a[note]})md.append()md.append(---)md.append(*本报告由影刀RPA自动生成*)return\n.join(md)发送到飞书/语雀# 飞书文档API需要企业权限defsend_to_feishu_doc(markdown_content,doc_token,tenant_token):将Markdown写入飞书文档# 飞书文档API使用的是类Markdown的Block结构# 需要将Markdown拆成Blockblocks[]forlineinmarkdown_content.split(\n):ifline.startswith(# ):blocks.append({type:heading1,heading1:{text:line[2:]}})elifline.startswith(## ):blocks.append({type:heading2,heading2:{text:line[3:]}})elifline.startswith(|):continue# 表格需要特殊处理简化跳过elifline.strip():blocks.append({type:text,text:{body:line}})# 调用飞书API创建文档需要企业应用token# ...# 语雀相对简单直接粘贴Markdown就行踩坑实录坑1Markdown表格里的管道符号如果单元格内容里有|管道符表格就被破坏了。需要转义或用#124;替代valuestr(row.get(h,)).replace(|,#124;)坑2中文对齐Markdown表格的对齐由表头的列数决定中文和英文混排时列宽很难看。解决方案用支持Markdown渲染的阅读器看飞书/语雀/GitHub都能自动对齐不要用纯文本查看。temu店群自动化报活动案例坑3飞书/钉钉的Markdown支持不完整飞书文档、钉钉文档支持的是类Markdown语法和标准Markdown有差异比如不支持某些表格格式。生成前先测试目标平台的渲染效果。坑4文件编码Markdown文件必须用UTF-8编码保存。如果用GBK保存中文字符在其他平台打开会乱码。写在最后Markdown是最轻量的格式化文档方案。影刀采集数据 → Python生成Markdown → 复制粘贴到飞书/语雀或者直接通过API上传。整个过程不需要打开任何Office软件全自动完成。