最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中prettytable庫的使用方法

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

一 什么是prettytable

prettytable是Python的一個第三方工具庫,用于創(chuàng)建漂亮的ASCII表格。它支持帶有列標題的表格,還支持顏色和自定義格式。使用prettytable可以輕松地將數(shù)據(jù)可視化為表格,方便閱讀和理解。
因為是第三方工具庫,所以要先安裝,安裝命令如下

pip install prettytable

二 prettytable的簡單使用

1. 添加表頭

使用field_names來添加表頭,傳參是一個list對象

from prettytable import PrettyTable
#創(chuàng)建Prettytable實例
tb = PrettyTable()
#添加表頭
tb.field_names = ['userId', 'name', 'sex', 'age', 'job']
print(tb)

>>>
+--------+------+-----+-----+-----+
| userId | name | sex | age | job |
+--------+------+-----+-----+-----+
+--------+------+-----+-----+-----+

2. 添加行

使用add_row()方法來添加行數(shù)據(jù),傳參是一個list對象

from prettytable import PrettyTable
#創(chuàng)建Prettytable實例
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()有兩個參數(shù):第一個是列標題的名稱,類型str;第二個是列對應(yīng)的value,類型list,如下

from prettytable import PrettyTable
#創(chuàng)建Prettytable實例
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è)置對齊方式

使用align來設(shè)置對齊方式,默認居中對齊,其中l(wèi)是向左對齊,c是居中對齊,r是向右對齊,如下

from prettytable import PrettyTable
#創(chuàng)建Prettytable實例
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è)置對齊方式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()默認參數(shù)是DEFAULT,如果需要更換為其它方式,則需要import導(dǎo)入后使用,如下

from prettytable import PrettyTable
from prettytable import MARKDOWN, MSWORD_FRIENDLY
#創(chuàng)建Prettytable實例
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è)置對齊方式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中表格邊框由三部分組成:橫邊框,豎邊框和邊框連接符,由以下幾個屬性控制

  • table.border 控制是否顯示邊框,默認是True
  • table.junction_char 控制邊框連接符
  • table.horizontal_char 控制橫邊框符號
  • table.vertical_char 控制豎邊框符號
from prettytable import PrettyTable
#創(chuàng)建Prettytable實例
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è)置對齊方式align: l,r,c
tb.align = 'l'
#自定義邊框樣式
print("默認邊框:")
print(tb)
tb.horizontal_char = '*' ?#橫邊框
tb.vertical_char = '|' ? ?#豎邊框
tb.junction_char = '|' ? ?#邊框連接符
print("自定義邊框:")
print(tb)

>>>
默認邊框:
+--------+------+-----+-----+----------+---------+
| 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ù)據(jù)校驗,包括但不限于返回狀態(tài)碼,單個字段值。為了能夠快速知道,以及美化校驗結(jié)果,我們可以使用prettytable來進行結(jié)果校驗輸出,如下。

返回接口:

{
  "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"
      }
    ]
  }
}

校驗?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: 要校驗的數(shù)據(jù)
? ? :param yqz: 預(yù)期值
? ? :return: None
? ? """
? ? data = json.loads(data)
? ? tb = PrettyTable()
? ? #添加表頭
? ? tb.field_names = ['比較字段', '預(yù)期值', '實際值', '是否通過']
? ? for k, v in yqz.items():
? ? ? ? #用jsonpath查找預(yù)期值字段在返回數(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é)果校驗
validate_data(response_data, yqz)

效果

>>>
+----------+------------------------------------------+------------------------------------------+----------+
| 比較字段 |                  預(yù)期值                  |                  實際值                  | 是否通過 |
+----------+------------------------------------------+------------------------------------------+----------+
| xRtnCod  |                 WYZQA76                  |                 WYZQA76                  |    Y     |
| xErrMsg  | WYZQA76鎖查步驟表記錄失敗,批次D019860641 | WYZQA76鎖查步驟表記錄失敗,批次D019860641 |    Y     |
+----------+------------------------------------------+------------------------------------------+----------+

上面做了一個簡單的演示,實際工作中可以結(jié)合自身需求封裝成組件或者包,使用效果會更佳。

到此這篇關(guān)于python中prettytable庫的使用方法的文章就介紹到這了,更多相關(guān)python prettytable庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)串口通信(pyserial)過程解析

    Python實現(xiàn)串口通信(pyserial)過程解析

    這篇文章主要介紹了Python實現(xiàn)串口通信(pyserial)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • python利用scatter繪畫散點圖

    python利用scatter繪畫散點圖

    這篇文章主要介紹了python利用scatter繪畫散點圖,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-06-06
  • PyQt5固定窗口大小的方法

    PyQt5固定窗口大小的方法

    今天小編就為大家分享一篇PyQt5固定窗口大小的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python框架flask入門之路由及簡單實現(xiàn)方法

    python框架flask入門之路由及簡單實現(xiàn)方法

    這篇文章主要介紹了python框架flask入門路由及路由簡單實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • pygame游戲之旅 按鈕上添加文字的方法

    pygame游戲之旅 按鈕上添加文字的方法

    這篇文章主要為大家詳細介紹了pygame游戲之旅的第11篇,按鈕上添加文字的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 一文掌握6種Python中常用數(shù)據(jù)庫操作及代碼

    一文掌握6種Python中常用數(shù)據(jù)庫操作及代碼

    在數(shù)據(jù)處理和管理領(lǐng)域,Python作為一種高效、易用的編程語言,擁有豐富的數(shù)據(jù)庫操作模塊,可以輕松實現(xiàn)對關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)操作,本文將介紹六種常見的Python數(shù)據(jù)庫操作模塊,需要的可以參考下
    2023-12-12
  • Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式(網(wǎng)站logo圖標)動起來

    Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式(網(wǎng)站logo圖標)動起來

    這篇文章主要介紹了Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式并且讓你的網(wǎng)站Logo(圖標)從此”動”起來,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Python?中的?list、tuple、set、dict的底層實現(xiàn)小結(jié)

    Python?中的?list、tuple、set、dict的底層實現(xiàn)小結(jié)

    本文詳細介紹了Python中四種常用數(shù)據(jù)結(jié)構(gòu)——list、tuple、set和dict的底層實現(xiàn),包括它們的存儲方式、性能特點以及適用場景,感興趣的朋友一起看看吧
    2025-03-03
  • 一文詳解如何使用Python從字符串中提取數(shù)字

    一文詳解如何使用Python從字符串中提取數(shù)字

    這篇文章主要給大家介紹了關(guān)于如何使用Python從字符串中提取數(shù)字的相關(guān)資料,我們在進行數(shù)據(jù)處理時候,可能想要提取字符串中的數(shù)字進行分析,需要的朋友可以參考下
    2023-11-11
  • VS Code中Python交互式環(huán)境的完整配置流程

    VS Code中Python交互式環(huán)境的完整配置流程

    VS Code 作為輕量且強大的代碼編輯器,憑借豐富的插件生態(tài)成為 Python 開發(fā)的熱門選擇,交互式環(huán)境能大幅提升開發(fā)效率,尤其適合數(shù)據(jù)分析、算法調(diào)試、代碼片段測試等場景,本文詳解 VS Code 中 Python 交互式環(huán)境的完整配置流程,需要的朋友可以參考下
    2026-05-05

最新評論

阜南县| 临泉县| 新和县| 西平县| 潜山县| 嵊州市| 平乐县| 涞源县| 榆社县| 繁峙县| 房产| 湟源县| 湘潭市| 车险| 车险| 内黄县| 阿拉善左旗| 延寿县| 庄浪县| 南部县| 阿城市| 增城市| 融水| 甘洛县| 图木舒克市| 繁峙县| 新昌县| 七台河市| 吕梁市| 连南| 亳州市| 鄄城县| 海安县| 巴彦淖尔市| 岳阳市| 台前县| 临朐县| 双辽市| 巴青县| 卫辉市| 辛集市|