用pandas+lxml生成html报告
最近,我需要每天写报告,汇报系统的运行情况。其实就是从一个很大的系统里面去拿各种表格,csv格式,然后汇总,以邮件的形式发出来。我查了一些资料,发现用pandas+lxml生成html,然后再复制到邮件里是比较好的一种方案。
Pandas是python常用的处理数据的库,可以读取csv,转换成各种格式,比如html。
lxml是python常用的处理XML的库,也处理HTML,因为HTML基本上就是XML。
我需要所有的表格在一个文件里面显示,然后我直接复制一下就行了。这时,我想到了把csv转成HTML格式的表格,然后把几张HTML表格放到一个HTML文件里。csv转html,我选择pandas。而整合这些html表格,我用lxml。
首先,我们用lxml新建一个html对象,这个对象的类型是lxml的Element。我们把html对象里面的body取出来,因为表格会添加到body中。
from io import StringIO
import pandas as pd
from lxml import etreehtml_str = """
<html>
<head>
<title>HTML report</title>
</head>
<body></body>
</html>
"""# 这里换成etree.XML也是一样的。
html = etree.HTML(html_str)
body = html.find("body")
接着,就往body中添加表格。
# 添加一个表头
h1 = etree.HTML("<h1>测试报告</h1>")
body.append(h1)test_result_csv = """
case,expected,actual,result
case 1,43545,43545,pass
case 2,12,11,fail
case 3,1234,1234,pass
"""df = pd.read_csv(StringIO(test_result_csv))
# 把pandas对象转换成html字符串
html_table_str = df.to_html()
html_table = etree.HTML(html_table_str)
# 把表格添加到html body
body.append(html_table)
最后,存盘。
with open("report.html", "wb") as f:f.write(etree.tostring(html, pretty_print=True))f.flush()f.close()
除了csv,pandas还可以打开各种表格,包括数据库里的表格。基本上来说,pandas+lxml就可以生成各种基于数据的HTML报表。虽然每天写报表也就10分钟,但是把这项工作自动化了以后,才有时间去看书,学习,提高自己。每个人的日常工作中,都有很多重复性的任务。只要这个重复性的任务是在电脑上的,都能用python自动化之。
用pandas+lxml生成html报告相关推荐
- 【Python】Pandas profiling 生成报告并部署的一站式解决方案
Pandas 库功能非常强大,特别有助于数据分析与处理,并为几乎所有操作提供了完整的解决方案.一种常见的Pandas函数是pandas describe.它向用户提供数据集所有特征的描述性统计摘要,尽 ...
- Pandas profiling 生成报告并部署的一站式解决方案
Pandas 库功能非常强大,特别有助于数据分析与处理,并为几乎所有操作提供了完整的解决方案.一种常见的Pandas函数是pandas describe.它向用户提供数据集所有特征的描述性统计摘要,尽 ...
- 用pandas_profiling生成数据报告遇到的各种坑
pandas_profiling可以实现自动的EDA,一键生成数据报告. 常见问题: 1.安装pandas_profiling报错. 2.内存和硬盘空间不够. 我的当前运行环境是Anaconda3-3 ...
- Python办公自动化|一键生成数据分析报告
前两天逛知乎的时候看到这样一个提问,Python自动化办公能做那些有趣或者有用的事情? 看了一下这个提问,我想这可能是很多职场人面临的困惑,想把Python用到工作中来提升效率,却不知如何下手?Pyt ...
- Python 基于 Prometheus 数据生成巡检报告
设计思路 1.基于Prometheus 开放接口获取数据(node_exporte/windows_exporter) 2.存放数据至mysql数据库 3.基于jinja2 编写模板生成巡检报告.ht ...
- 神器Jinja2,用 Python 快速生成分析报告!
点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 夜阑卧听风吹雨,铁马冰河入梦来. ...
- 用Python自动生成数据分析报告!
来源:林骥 你好,我是林骥. 很多时候,我们需要做一些重复性的工作,比如说,每个月制作类似的数据分析报告,整个框架是基本固定的,此时,我们可以采用 Python 来自动生成数据分析报告,把更多的时间和 ...
- python使用sklearn中的make_classification函数生成分类模型(classification)需要的仿真数据、使用pandas查看生成数据的特征数据、目标数据
python使用sklearn中的make_classification函数生成分类模型(classification)需要的仿真数据.使用pandas查看生成数据的特征数据(features).目标 ...
- python使用fpdf生成数据报告pdf文件
python使用fpdf生成数据报告pdf文件 目录 python使用fpdf生成数据报告pdf文件 # 报告生成整体代码
最新文章
- linux基础-延时命令:sleep
- jquery的实时触发事件(textarea实时获取中文个数)
- 电动力学每日一题 2021/10/10
- UA PHYS515A 电磁理论V 电磁波与辐射3 偏振
- mysql监控sql
- 麒麟linux百度云,百度网盘 Linux 版发布,搭配优麒麟运行更完美!
- 真机调试及上线简略流程
- java设置时间_怎么用java设置系统时间?
- 智能优化算法:类电磁机制算法 - 附代码
- Ubuntu 设置 samba共享文件夹
- 新浪股权分散是把双刃剑
- launch尺寸 包含iPhone X
- 安卓动画系统 - 安卓R
- 计算机教师招聘笔试总结
- MATLAB和Python求解非线性常微分方程
- 不高兴的津津、c++练习
- 使用阿里云接口实现全国天气查询
- 许奔创新社-第18问:静默头脑风暴怎么玩?
- 火一把就死的现象级产品:疯狂猜图与百度魔图
- nuget 部署 (一) 环境搭建
热门文章
- android的颜色渐变动画效果图,android – 渐变色动画
- 如何塑造社群荣誉感与归属感
- Urlparse模块
- 实践分享:将微信小游戏运行到自有App中(iOS篇)
- 安装并运行apk时出现恼人的Error: Activity class {xxx/xxx.MainActivity} does not exist.
- 特斯拉「红利」结束?一场新的智能普及+升级战上演
- CPU-IO-网络-内核参数调优
- eMMC Spec —— 1.eMMC前言介绍
- BugKuCTF-杂项-论剑
- 为什么“赢”字这么难写?