python中prettytable庫的使用方法
一 什么是prettytable
prettytable是Python的一個(gè)第三方工具庫,用于創(chuàng)建漂亮的ASCII表格。它支持帶有列標(biāo)題的表格,還支持顏色和自定義格式。使用prettytable可以輕松地將數(shù)據(jù)可視化為表格,方便閱讀和理解。
因?yàn)槭堑谌焦ぞ邘?,所以要先安裝,安裝命令如下
pip install prettytable
二 prettytable的簡單使用
1. 添加表頭
使用field_names來添加表頭,傳參是一個(gè)list對(duì)象
from prettytable import PrettyTable #創(chuàng)建Prettytable實(shí)例 tb = PrettyTable() #添加表頭 tb.field_names = ['userId', 'name', 'sex', 'age', 'job'] print(tb)
>>>
+--------+------+-----+-----+-----+
| userId | name | sex | age | job |
+--------+------+-----+-----+-----+
+--------+------+-----+-----+-----+
2. 添加行
使用add_row()方法來添加行數(shù)據(jù),傳參是一個(gè)list對(duì)象
from prettytable import PrettyTable #創(chuàng)建Prettytable實(shí)例 tb = PrettyTable() #添加表頭 tb.field_names = ['userId', 'name', 'sex', 'age', 'job'] #添加行數(shù)據(jù) tb.add_row(['123', '張三', '男', '25', 'softtest']) print(tb)
3. 添加列
使用add_column()方法來添加列數(shù)據(jù),add_column()有兩個(gè)參數(shù):第一個(gè)是列標(biāo)題的名稱,類型str;第二個(gè)是列對(duì)應(yīng)的value,類型list,如下
from prettytable import PrettyTable
#創(chuàng)建Prettytable實(shí)例
tb = PrettyTable()
#添加表頭
tb.field_names = ['userId', 'name', 'sex', 'age', 'job']
#添加行
tb.add_row(['123', '張三', '男', '25', 'softtest'])
#添加列
tb.add_column('address', ['深圳'])
print(tb)>>>
+--------+------+-----+-----+----------+---------+
| userId | name | sex | age | job | address |
+--------+------+-----+-----+----------+---------+
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
+--------+------+-----+-----+----------+---------+
4. 設(shè)置對(duì)齊方式
使用align來設(shè)置對(duì)齊方式,默認(rèn)居中對(duì)齊,其中l(wèi)是向左對(duì)齊,c是居中對(duì)齊,r是向右對(duì)齊,如下
from prettytable import PrettyTable
#創(chuàng)建Prettytable實(shí)例
tb = PrettyTable()
#添加表頭
tb.field_names = ['userId', 'name', 'sex', 'age', 'job']
#添加行
tb.add_row(['123', '張三', '男', '25', 'softtest'])
tb.add_row(['124', '李四', '男', '25', 'Java'])
#添加列
tb.add_column('address', ['深圳', '北京'])
#設(shè)置對(duì)齊方式align: l,r,c
tb.align = 'l'
print(tb)>>>
+--------+------+-----+-----+----------+---------+
| userId | name | sex | age | job | address |
+--------+------+-----+-----+----------+---------+
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
| 124 | 李四 | 男 | 25 | Java | 北京 |
+--------+------+-----+-----+----------+---------+
5. 設(shè)置輸出表格樣式
使用set_style()來控制數(shù)據(jù)表格的樣式,set_style()默認(rèn)參數(shù)是DEFAULT,如果需要更換為其它方式,則需要import導(dǎo)入后使用,如下
from prettytable import PrettyTable
from prettytable import MARKDOWN, MSWORD_FRIENDLY
#創(chuàng)建Prettytable實(shí)例
tb = PrettyTable()
#添加表頭
tb.field_names = ['userId', 'name', 'sex', 'age', 'job']
#添加行
tb.add_row(['123', '張三', '男', '25', 'softtest'])
tb.add_row(['124', '李四', '男', '25', 'Java'])
#添加列
tb.add_column('address', ['深圳', '北京'])
#設(shè)置對(duì)齊方式align: l,r,c
tb.align = 'l'
#設(shè)置輸出表格的樣式
print("DEFAULT表格樣式:")
print(tb)
tb.set_style(MSWORD_FRIENDLY)
print("MSWORD_FRIENDLY表格樣式:")
print(tb)
tb.set_style(MARKDOWN)
print("MARKDOWN表格樣式:")
print(tb)>>>
DEFAULT表格樣式:
+--------+------+-----+-----+----------+---------+
| userId | name | sex | age | job | address |
+--------+------+-----+-----+----------+---------+
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
| 124 | 李四 | 男 | 25 | Java | 北京 |
+--------+------+-----+-----+----------+---------+
MSWORD_FRIENDLY表格樣式:
| userId | name | sex | age | job | address |
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
| 124 | 李四 | 男 | 25 | Java | 北京 |
MARKDOWN表格樣式:
| userId | name | sex | age | job | address |
|:-------|:-----|:----|:----|:---------|:--------|
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
| 124 | 李四 | 男 | 25 | Java | 北京 |
6. 自定義邊框樣式
在prettyble中表格邊框由三部分組成:橫邊框,豎邊框和邊框連接符,由以下幾個(gè)屬性控制
- table.border 控制是否顯示邊框,默認(rèn)是True
- table.junction_char 控制邊框連接符
- table.horizontal_char 控制橫邊框符號(hào)
- table.vertical_char 控制豎邊框符號(hào)
from prettytable import PrettyTable
#創(chuàng)建Prettytable實(shí)例
tb = PrettyTable()
#添加表頭
tb.field_names = ['userId', 'name', 'sex', 'age', 'job']
#添加行
tb.add_row(['123', '張三', '男', '25', 'softtest'])
tb.add_row(['124', '李四', '男', '25', 'Java'])
#添加列
tb.add_column('address', ['深圳', '北京'])
#設(shè)置對(duì)齊方式align: l,r,c
tb.align = 'l'
#自定義邊框樣式
print("默認(rèn)邊框:")
print(tb)
tb.horizontal_char = '*' ?#橫邊框
tb.vertical_char = '|' ? ?#豎邊框
tb.junction_char = '|' ? ?#邊框連接符
print("自定義邊框:")
print(tb)>>>
默認(rèn)邊框:
+--------+------+-----+-----+----------+---------+
| userId | name | sex | age | job | address |
+--------+------+-----+-----+----------+---------+
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
| 124 | 李四 | 男 | 25 | Java | 北京 |
+--------+------+-----+-----+----------+---------+
自定義邊框:
|********|******|*****|*****|**********|*********|
| userId | name | sex | age | job | address |
|********|******|*****|*****|**********|*********|
| 123 | 張三 | 男 | 25 | softtest | 深圳 |
| 124 | 李四 | 男 | 25 | Java | 北京 |
|********|******|*****|*****|**********|*********|
7. 其它功能
prettytable還有很多其它功能,可以參考官網(wǎng)或者這篇文章:python用prettytable輸出漂亮的表格
三 prettytable在實(shí)際中的使用
在實(shí)際的接口測試過程中,我們都要對(duì)返回的接口進(jìn)行數(shù)據(jù)校驗(yàn),包括但不限于返回狀態(tài)碼,單個(gè)字段值。為了能夠快速知道,以及美化校驗(yàn)結(jié)果,我們可以使用prettytable來進(jìn)行結(jié)果校驗(yàn)輸出,如下。
返回接口:
{
"HEAD": {
"xTypCod": null,
"xHdrLen": "203",
"xSysCod": null,
"xDskSys": null,
"xWkeCod": "WdcTrfSetBeg",
"xKeyVal": null,
"xIsuCnl": "X86",
"xEncCod": null,
"xDalCod": null,
"xCmmTyp": null,
"xOrgIsu": null,
"xPreIsu": null,
"xEntUsr": "",
"xUsrPwd": null,
"xIsuDat": "0",
"xIsuTim": "0",
"xMacCod": null,
"xRtnLvl": null,
"xRtnCod": "WYZQA76",
"xDevNbr": null,
"xTlrNbr": "100025",
"xRqsNbr": null,
"xCmmRsv": null,
"xDocSiz": null,
"xItvTms": null,
"xMsgFlg": null,
"xAppRsv": null
},
"BODY": {
"$ERRORMSG$": [
{
"xErrMsg": "WYZQA76鎖查步驟表記錄失敗,批次D019860641"
}
]
}
}校驗(yàn)?zāi)_本
from prettytable import PrettyTable
import json
import jsonpath
response_data = """
{
? "HEAD": {
? ? "xTypCod": null,
? ? "xHdrLen": "203",
? ? "xSysCod": null,
? ? "xDskSys": null,
? ? "xWkeCod": "WdcTrfSetBeg",
? ? "xKeyVal": null,
? ? "xIsuCnl": "X86",
? ? "xEncCod": null,
? ? "xDalCod": null,
? ? "xCmmTyp": null,
? ? "xOrgIsu": null,
? ? "xPreIsu": null,
? ? "xEntUsr": "",
? ? "xUsrPwd": null,
? ? "xIsuDat": "0",
? ? "xIsuTim": "0",
? ? "xMacCod": null,
? ? "xRtnLvl": null,
? ? "xRtnCod": "WYZQA76",
? ? "xDevNbr": null,
? ? "xTlrNbr": "100025",
? ? "xRqsNbr": null,
? ? "xCmmRsv": null,
? ? "xDocSiz": null,
? ? "xItvTms": null,
? ? "xMsgFlg": null,
? ? "xAppRsv": null
? },
? "BODY": {
? ? "$ERRORMSG$": [
? ? ? {
? ? ? ? "xErrMsg": "WYZQA76鎖查步驟表記錄失敗,批次D019860641"
? ? ? }
? ? ]
? }
}
"""
def validate_data(data: dict, yqz: dict) -> None:
? ? """
? ? :param data: 要校驗(yàn)的數(shù)據(jù)
? ? :param yqz: 預(yù)期值
? ? :return: None
? ? """
? ? data = json.loads(data)
? ? tb = PrettyTable()
? ? #添加表頭
? ? tb.field_names = ['比較字段', '預(yù)期值', '實(shí)際值', '是否通過']
? ? for k, v in yqz.items():
? ? ? ? #用jsonpath查找預(yù)期值字段在返回?cái)?shù)據(jù)resresponse_data的值
? ? ? ? res = jsonpath.jsonpath(data, '$..' + k)[0]
? ? ? ? if v == res:
? ? ? ? ? ? tb.add_row([k, v, res, 'Y'])
? ? ? ? else:
? ? ? ? ? ? tb.add_row([k, v, res, 'N'])
? ? print(tb)
#預(yù)期值數(shù)據(jù)
yqz = {'xRtnCod': 'WYZQA76', 'xErrMsg': 'WYZQA76鎖查步驟表記錄失敗,批次D019860641'}
#結(jié)果校驗(yàn)
validate_data(response_data, yqz)效果
>>>
+----------+------------------------------------------+------------------------------------------+----------+
| 比較字段 | 預(yù)期值 | 實(shí)際值 | 是否通過 |
+----------+------------------------------------------+------------------------------------------+----------+
| xRtnCod | WYZQA76 | WYZQA76 | Y |
| xErrMsg | WYZQA76鎖查步驟表記錄失敗,批次D019860641 | WYZQA76鎖查步驟表記錄失敗,批次D019860641 | Y |
+----------+------------------------------------------+------------------------------------------+----------+
上面做了一個(gè)簡單的演示,實(shí)際工作中可以結(jié)合自身需求封裝成組件或者包,使用效果會(huì)更佳。
到此這篇關(guān)于python中prettytable庫的使用方法的文章就介紹到這了,更多相關(guān)python prettytable庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python prettytable模塊應(yīng)用詳解
- Python利用prettytable實(shí)現(xiàn)格式化輸出內(nèi)容
- python使用prettytable內(nèi)置庫美化輸出表格
- python?利用?PrettyTable?美化表格
- Python利用prettytable庫輸出好看的表格
- Python第三方包PrettyTable安裝及用法解析
- Python 使用 prettytable 庫打印表格美化輸出功能
- Python實(shí)用庫 PrettyTable 學(xué)習(xí)筆記
- python PrettyTable模塊的安裝與簡單應(yīng)用
- Python的PrettyTable模塊的方法實(shí)現(xiàn)
相關(guān)文章
python dataclass 快速創(chuàng)建數(shù)據(jù)類的方法
在Python中,dataclass是一種用于快速創(chuàng)建數(shù)據(jù)類的裝飾器和工具,本文實(shí)例代碼中我們定義了一個(gè)Person數(shù)據(jù)類,并使用fields()函數(shù)遍歷其字段,打印出每個(gè)字段的名稱、類型、默認(rèn)值和元數(shù)據(jù),對(duì)python dataclass 數(shù)據(jù)類相關(guān)知識(shí)感興趣的朋友一起看看吧2024-03-03
Pandas數(shù)據(jù)分析之pandas文本處理
這篇文章主要介紹了Pandas數(shù)據(jù)分析之pandas文本處理,pandas對(duì)文本數(shù)據(jù)也有很多便捷處理方法,可以不用寫循環(huán),向量化操作運(yùn)算速度快,還可以進(jìn)行高級(jí)的正則表達(dá)式,各種復(fù)雜的邏輯篩選和匹配提取信息2022-08-08
淺談python中頻繁的print到底能浪費(fèi)多長時(shí)間
今天小編就為大家分享一篇淺談python中頻繁的print到底能浪費(fèi)多長時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python連接MySQL并使用fetchall()方法過濾特殊字符
這篇文章主要介紹了Python連接MySQL的方法并講解了如何使用fetchall()方法過濾特殊字符,示例環(huán)境為Ubuntu操作系統(tǒng),需要的朋友可以參考下2016-03-03
Python猴子補(bǔ)丁知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家分享的是關(guān)于Python猴子補(bǔ)丁知識(shí)點(diǎn)總結(jié),需要的朋友們學(xué)習(xí)下。2020-01-01
Anaconda安裝以及修改環(huán)境默認(rèn)位置圖文教程
Anaconda是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,支持Linux,Mac, Windows, 包含了眾多流行的科學(xué)計(jì)算、數(shù)據(jù)分析的 Python 包,下面這篇文章主要給大家介紹了關(guān)于Anaconda安裝以及修改環(huán)境默認(rèn)位置的相關(guān)資料,需要的朋友可以參考下2023-04-04

