除了@Andrew 的回答,尝试pprint
输出您想要的确切格式。
import pprint
# ...
# ...
for row in reading_file:
if row[2] == postcode:
output.append((row[1], row[4]))
print("suburb, values")
pprint.pprint(output)
输出
suburb, values
[('Adelaide', 'Small_Animal'),
('Adelaide', 'Oncology'),
('Adelaide', 'Surgery'),
('Adelaide', 'Annual_Checkup'),
('Adelaide', 'Wildlife')]
或者,如果您希望输出类似于表格,请尝试使用格式化的字符串文字/ f-strings
。
# ...
# ...
sub_width = val_width = 0
for row in reading_file:
if row[2] == postcode:
output.append((row[1], row[4]))
# calculate the minimum width of each column
sub_width = len(row[1]) if len(row[1]) > sub_width else sub_width
val_width = len(row[4]) if len(row[4]) > val_width else val_width
print(f"+{'='*(sub_width+2)}+{'='*(val_width+2)}+")
print(f"| {'Suburb':{sub_width}} | {'Service':{val_width}} |")
print(f"+{'='*(sub_width+2)}+{'='*(val_width+2)}+")
for row in output:
print(f"| {row[0]:{sub_width}} | {row[1]:{val_width}} |")
print(f"+{'-'*(sub_width+2)}+{'-'*(val_width+2)}+")
输出
+==========+================+
| Suburb | Service |
+==========+================+
| Adelaide | Small_Animal |
+----------+----------------+
| Adelaide | Oncology |
+----------+----------------+
| Adelaide | Surgery |
+----------+----------------+
| Adelaide | Annual_Checkup |
+----------+----------------+
| Adelaide | Wildlife |
+----------+----------------+
或者,也可以将输出馈送到 atemplate
并作为 HTML 表返回。您可以将所需的任何数据传递给template
模板变量。只要模板使用相同的变量名称,您就可以随意命名变量。
template(filepath, var1=data1, var2=data2, ...)
假设您有以下项目结构
project-name
|-- views
| |-- index.tpl
| ...
|-- main.py
修改你的 Python 脚本
# ...
# ...
for row in reading_file:
if row[2] == postcode:
output.append((row[1], row[4]))
return template('views/index.tpl', title="Available Vet Service", header=["Suburb", "Values"], rows=output)
内容index.tpl
<html lang="en">
<head>
<meta charset="utf-8">
<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin="anonymous"
>
<title>{{title}}</title>
</head>
<body>
<div>
<table class="table table-striped table-hover table-responsive-sm">
<thead class="thead-dark">
<tr>
% for col_title in header:
<th scope="col">{{col_title}}</th>
% end
</tr>
</thead>
<tbody>
% for cell in rows:
<tr>
<td>{{cell[0]}}</td>
<td>{{cell[1]}}</td>
</tr>
% end
</tbody>
</table>
</div>
</body>
</html>
这是 HTML 输出的屏幕截图。
