欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中prettytable庫(kù)的使用方法

 更新時(shí)間:2023年08月09日 15:00:51   作者:搬磚,攢路費(fèi)  
prettytable是Python的一個(gè)第三方工具庫(kù),用于創(chuàng)建漂亮的ASCII表格,本文主要介紹了python中prettytable庫(kù)的使用方法,使用prettytable可以輕松地將數(shù)據(jù)可視化為表格,感興趣的可以了解一下

一 什么是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)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • windows下numpy下載與安裝圖文教程

    windows下numpy下載與安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下numpy下載與安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python使用 multiprocessing 多進(jìn)程處理批量數(shù)據(jù)的示例代碼

    python使用 multiprocessing 多進(jìn)程處理批量數(shù)據(jù)的示例代碼

    這篇文章主要介紹了使用 multiprocessing 多進(jìn)程處理批量數(shù)據(jù)的示例代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • python版單鏈表反轉(zhuǎn)

    python版單鏈表反轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了python版單鏈表反轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • python實(shí)現(xiàn)canny邊緣檢測(cè)

    python實(shí)現(xiàn)canny邊緣檢測(cè)

    本文主要講解了canny邊緣檢測(cè)原理:計(jì)算梯度幅值和方向、根據(jù)角度對(duì)幅值進(jìn)行非極大值抑制、用雙閾值算法檢測(cè)和連接邊緣以及python 實(shí)現(xiàn)
    2020-09-09
  • 基于Python制作IP查詢網(wǎng)站

    基于Python制作IP查詢網(wǎng)站

    這篇文章主要為大家詳細(xì)介紹了如何使用python快速做一個(gè)簡(jiǎn)易查內(nèi)網(wǎng)IP網(wǎng)站,通過電腦訪問網(wǎng)站就知道自己的IP地址,感興趣的小伙伴可以了解下
    2024-10-10
  • Tensorflow 訓(xùn)練自己的數(shù)據(jù)集將數(shù)據(jù)直接導(dǎo)入到內(nèi)存

    Tensorflow 訓(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-06
  • Python備份目錄及目錄下的全部?jī)?nèi)容的實(shí)現(xiàn)方法

    Python備份目錄及目錄下的全部?jī)?nèi)容的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇Python備份目錄及目錄下的全部?jī)?nèi)容的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2016-06-06
  • python如何利用re模塊正則表達(dá)式匹配ip地址

    python如何利用re模塊正則表達(dá)式匹配ip地址

    這篇文章主要介紹了python如何利用re模塊正則表達(dá)式匹配ip地址問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • pandas中iloc函數(shù)的具體實(shí)現(xiàn)

    pandas中iloc函數(shù)的具體實(shí)現(xiàn)

    iloc是Pandas中用于基于整數(shù)位置進(jìn)行索引和切片的方法,本文主要介紹了pandas中iloc函數(shù)的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例

    Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例

    今天小編就為大家分享一篇關(guān)于Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-04-04

最新評(píng)論