python - 具有多个标题/标题的 Python PrettyTable
问题描述
我能够创建一个带有标题和表格字段的 python PrettyTable。但是,我想在一个表中创建多个部分,即有多个标题(或 html rowspan/colspan 以合并单元格以创建部分)。有什么指示吗?
目前,我可以使用以下方法创建表:
table_fields = ['No','Name', 'Age']
from prettytable import PrettyTable
pt = PrettyTable(table_fields)
pt.padding_width = 1
pt.title = 'Customer Info'
pt.add_row(['1','abc','26'])
pt.add_row(['2','xyz','52'])
输出:
+------------------------------+
| Customer Info |
+------------------------------+
| No | Name | Age |
+------------------------------+
| 1 | abc | 26 |
| 2 | xyz | 52 |
+------------------------------+
期望的输出:
+------------------------------+
| Customer Info |
+------------------------------+
| No | Name | Age |
+------------------------------+
| DEPARTMENT 1 |
+------------------------------+
| 1 | abc | 26 |
| 2 | xyz | 52 |
+------------------------------+
| DEPARTMENT 2 |
+------------------------------+
| 1 | pqr | 44 |
| 2 | def | 31 |
+------------------------------+
寻找一种在表中添加部门 1 和部门 2 行的方法。
解决方案
这是我能够获得所需输出的最接近的结果(每次将新部门的人员添加到表中时,使用一行作为部门编号):注意:我无法找到更改列跨度的方法一个单元格,所以我必须添加空白来填充预期的单元格数量,否则无法添加行。
+---------------------------+
| Customer Info |
+--------------+------+-----+
| No | Name | Age |
+--------------+------+-----+
| DEPARTMENT 1 | | |
| 1 | abc | 41 |
| 2 | def | 29 |
| DEPARTMENT 2 | | |
| 1 | pqr | 21 |
| 2 | xyz | 37 |
+--------------+------+-----+
使用以下代码:
from prettytable import PrettyTable
departments = {
"1": {
"abc": {
"age": 41
},
"def": {
"age": 29
}
},
"2": {
"pqr": {
"age": 21
},
"xyz": {
"age": 37
}
}
}
table_fields = ['No', 'Name', 'Age']
pt = PrettyTable(table_fields)
pt.padding_width = 1
pt.title = 'Customer Info'
person_no = 1
for department, people in departments.items():
pt.add_row(["DEPARTMENT {}".format(department), "", ""])
for name, person in people.items():
pt.add_row([person_no, name, person["age"]])
person_no += 1
person_no = 1
print(pt)
我希望这足以满足您的需求,如果您或其他任何人知道如何为单元格指定列跨度,我很想知道!
推荐阅读
- javascript - JavaScript 表格理解
- javascript - 如何使用纯 Javascript 从 Div 中的 Span 获取文本值
- docker - Docker Swarm 服务容器在手动停止时不会自动启动
- autofac - 为什么Autofac有这样的名字?
- php - PHP 中的 HTTP POST
- mysql - 查找所有具有相同关键字的产品
- php - 如果文件未重命名,Ajax ping php 不起作用
- r - 是否有一个基本的 R 函数可以通过多列查找两个 data.frame 的公共元素?
- python - 在哪里在线托管 selenium python 脚本?
- asp.net - 在 ASP.NET Core 中上传文件图像