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

python中prettytable庫的使用方法

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

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

相關(guān)文章

  • python  dataclass 快速創(chuàng)建數(shù)據(jù)類的方法

    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
  • Python編程基礎(chǔ)之類和對(duì)象

    Python編程基礎(chǔ)之類和對(duì)象

    這篇文章主要為大家詳細(xì)介紹了Python的類和對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Pandas數(shù)據(jù)分析之pandas文本處理

    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異步框架aiohttp無法使用本地代理問題

    解決python異步框架aiohttp無法使用本地代理問題

    這篇文章主要介紹了解決python異步框架aiohttp無法使用本地代理問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 淺談python中頻繁的print到底能浪費(fèi)多長時(shí)間

    淺談python中頻繁的print到底能浪費(fèi)多長時(shí)間

    今天小編就為大家分享一篇淺談python中頻繁的print到底能浪費(fèi)多長時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 使用Python初始化多維列表遇到的問題詳解

    使用Python初始化多維列表遇到的問題詳解

    這篇文章主要介紹了使用Python初始化多維列表遇到的問題詳解,二維列表是將其他列表作為它的元素的列表,前一章介紹了如何使用一個(gè)列表來存儲(chǔ)線性的元素集合,可以使用列表來存儲(chǔ)二維數(shù)據(jù),需要的朋友可以參考下
    2023-11-11
  • Python連接MySQL并使用fetchall()方法過濾特殊字符

    Python連接MySQL并使用fetchall()方法過濾特殊字符

    這篇文章主要介紹了Python連接MySQL的方法并講解了如何使用fetchall()方法過濾特殊字符,示例環(huán)境為Ubuntu操作系統(tǒng),需要的朋友可以參考下
    2016-03-03
  • Python腳本實(shí)現(xiàn)小猿口算

    Python腳本實(shí)現(xiàn)小猿口算

    最近小猿口算已經(jīng)被不少大學(xué)生攻占,一個(gè)好好的給小學(xué)生的口算題已經(jīng)變成了大學(xué)生的計(jì)算機(jī)大戰(zhàn),下面我們就來看看如何使用Python腳本就行吧小猿口算
    2024-10-10
  • Python猴子補(bǔ)丁知識(shí)點(diǎn)總結(jié)

    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安裝以及修改環(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

最新評(píng)論