python中prettytable庫(kù)的使用方法
一 什么是prettytable
prettytable是Python的一個(gè)第三方工具庫(kù),用于創(chuàng)建漂亮的ASCII表格。它支持帶有列標(biāo)題的表格,還支持顏色和自定義格式。使用prettytable可以輕松地將數(shù)據(jù)可視化為表格,方便閱讀和理解。
因?yàn)槭堑谌焦ぞ邘?kù),所以要先安裝,安裝命令如下
pip install prettytable
二 prettytable的簡(jiǎn)單使用
1. 添加表頭
使用field_names來(lái)添加表頭,傳參是一個(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()方法來(lái)添加行數(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()方法來(lái)添加列數(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來(lái)設(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()來(lái)控制數(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í)際的接口測(cè)試過程中,我們都要對(duì)返回的接口進(jìn)行數(shù)據(jù)校驗(yàn),包括但不限于返回狀態(tài)碼,單個(gè)字段值。為了能夠快速知道,以及美化校驗(yàn)結(jié)果,我們可以使用prettytable來(lái)進(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è)簡(jiǎn)單的演示,實(shí)際工作中可以結(jié)合自身需求封裝成組件或者包,使用效果會(huì)更佳。
到此這篇關(guān)于python中prettytable庫(kù)的使用方法的文章就介紹到這了,更多相關(guān)python prettytable庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python prettytable模塊應(yīng)用詳解
- Python利用prettytable實(shí)現(xiàn)格式化輸出內(nèi)容
- python使用prettytable內(nèi)置庫(kù)美化輸出表格
- python?利用?PrettyTable?美化表格
- Python利用prettytable庫(kù)輸出好看的表格
- Python第三方包PrettyTable安裝及用法解析
- Python 使用 prettytable 庫(kù)打印表格美化輸出功能
- Python實(shí)用庫(kù) PrettyTable 學(xué)習(xí)筆記
- python PrettyTable模塊的安裝與簡(jiǎn)單應(yīng)用
相關(guān)文章
python使用 multiprocessing 多進(jìn)程處理批量數(shù)據(jù)的示例代碼
這篇文章主要介紹了使用 multiprocessing 多進(jìn)程處理批量數(shù)據(jù)的示例代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09python實(shí)現(xiàn)canny邊緣檢測(cè)
本文主要講解了canny邊緣檢測(cè)原理:計(jì)算梯度幅值和方向、根據(jù)角度對(duì)幅值進(jìn)行非極大值抑制、用雙閾值算法檢測(cè)和連接邊緣以及python 實(shí)現(xiàn)2020-09-09Tensorflow 訓(xùn)練自己的數(shù)據(jù)集將數(shù)據(jù)直接導(dǎo)入到內(nèi)存
這篇文章主要介紹了Tensorflow 訓(xùn)練自己的數(shù)據(jù)集將數(shù)據(jù)直接導(dǎo)入到內(nèi)存,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-06-06Python備份目錄及目錄下的全部?jī)?nèi)容的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇Python備份目錄及目錄下的全部?jī)?nèi)容的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06pandas中iloc函數(shù)的具體實(shí)現(xiàn)
iloc是Pandas中用于基于整數(shù)位置進(jìn)行索引和切片的方法,本文主要介紹了pandas中iloc函數(shù)的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例
今天小編就為大家分享一篇關(guān)于Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04