![簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式](http://p2.ttnews.xyz/loading.gif)
遇見 Tablib
我們在 Python 實際開發過程中,經常涉及將數據導出為 Excel、Csv、Yaml、Json 等各種格式的文件的需求,一些粗魯的實現方式是通過安裝各種第三方模塊以支持不同格式文件的導出操作。
接下來要我們要介紹的這個模塊,再也不需要擔心因導出不同格式數據時而調用各種第三方模塊了,當然使用 Pandas 也是一個不錯的選擇,只是過於重量級了。
Python Tablib 是麻省理工學院授權的與格式無關的表格數據集庫。支持導入、導出和操作表格數據集。優雅的將數據導出為各種不同的格式,包括Excel,Json,Html,Yaml,Csv,Tsv等格式。
Tablib 安裝
我們在 Windows10 Python3 環境下,使用 pip 進行安裝 ,安裝命令如下:
pip install tablib
接下來,讓我們一步步瞭解如何使用 Tablib ,簡潔而又優雅的實現將數據導出為各種格式。
創建數據集
我們使用 tablib.Dataset 方法,採用如下方式創建數據集:
![簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式](http://p2.ttnews.xyz/loading.gif)
我們還可以另一種方式創建數據集,如下:
我們還可以通過導入現有文件數據的方式創建數據集,如下,我們為 dump.json 文件。
我們使用 tablib.Dataset.load 方法導入 dump.json 文件數據,實現如下:
創建一個 tablib.Dataset 通過 load 方法,導入現已存在的文件。強大之處是 tablib 能夠自動檢測傳入的文件類型,並使用適當的格式化方法進行導入,實現從各種不同的文件類型中導入——
強無敵。比如,我們再導入 dataset.xlsx 文件,代碼實現如下:
添加行
我們可以使用 tablib.Dataset.append 方法,實現向數據集尾部 添加行數據,需要注意的是每行的元素數量應與數據集的列數相同,代碼實現如下:
我們也可以使用 tablib.Dataset.insert 方法,實現向數據集指定位置添加行數據,同樣需要注意每行的元素數量應與數據集的列數相同,代碼實現如下:
添加列
我們可以使用 tablib.Dataset.append_col 方法,實現向數據集尾部添加列數據,需要注意的是每列的元素數量應與數據集的行數相同,代碼實現如下:
我們也可以使用
tablib.Dataset.insert_col 方法,實現向數據集指定位置添加列數據,需要注意的是每列的元素數量應於數據集的行數相同,代碼實現如下:選擇行和列
我們可以像Python列表一樣通過切片和索引獲取行數據。像Python字典通過
列名和索引獲取列數據,代碼實現如下:刪除行
我們可以使用以下方式,實現行刪除:
- tablib.Dataset.pop :刪除最後一行
- tablib.Dataset.lpop :刪除第一行
- del dataset[n: m] :刪除指定範圍的行
刪除列
我們可以使用 del dataset['column_name'] ,實現刪除指定列,代碼實現如下:
數據格式轉換
我們可以將數據集轉換為如下任一格式,強無敵。
- Excel ( 支持Books)
- Json ( 支持Books)
- Yaml (支持 Books)
- Pandas DataFrames
- Csv
- Html
- Jira
- Tsv
- Ods
- Dbf
- Dict
我們演示一下,其中幾種數據格式,如下:
執行上述代碼,輸出結果為:
數據導出
終於介紹到,讓我激動不已的數據導出了,簡單而優雅,通用而高效。
導出 dataset_o.xlsx 文件如下:
使用DataBook 導出多頁數據
導出 dataset_ot.xlsx 文件如下:
閱讀更多 軟件測試開發技術棧 的文章