09.13 簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

遇見 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種格式

我們還可以另一種方式創建數據集,如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

我們還可以通過導入現有文件數據的方式創建數據集,如下,我們為 dump.json 文件。

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

我們使用 tablib.Dataset.load 方法導入 dump.json 文件數據,實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

創建一個 tablib.Dataset 通過 load 方法,導入現已存在的文件。強大之處是 tablib 能夠自動檢測傳入的文件類型,並使用適當的格式化方法進行導入,實現從各種不同的文件類型中導入——

強無敵

比如,我們再導入 dataset.xlsx 文件,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


添加行

我們可以使用 tablib.Dataset.append 方法,實現向數據集尾部

添加行數據,需要注意的是每行的元素數量應與數據集的列數相同,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

我們也可以使用 tablib.Dataset.insert 方法,實現向數據集指定位置添加行數據,同樣需要注意每行的元素數量應與數據集的列數相同,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


添加列

我們可以使用 tablib.Dataset.append_col 方法,實現向數據集尾部添加列數據,需要注意的是每列的元素數量應與數據集的行數相同,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

我們也可以使用

tablib.Dataset.insert_col 方法,實現向數據集指定位置添加列數據,需要注意的是每列的元素數量應於數據集的行數相同,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


選擇行和列

我們可以像Python列表一樣通過切片和索引獲取行數據。像Python字典通過

列名和索引獲取列數據,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


刪除行

我們可以使用以下方式,實現行刪除:

  • tablib.Dataset.pop :刪除最後一行
  • tablib.Dataset.lpop :刪除第一行
  • del dataset[n: m] :刪除指定範圍的行
簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


刪除列

我們可以使用 del dataset['column_name'] ,實現刪除指定列,代碼實現如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


數據格式轉換

我們可以將數據集轉換為如下任一格式,強無敵。

  • Excel ( 支持Books)
  • Json ( 支持Books)
  • Yaml (支持 Books)
  • Pandas DataFrames
  • Csv
  • Html
  • Jira
  • Tsv
  • Ods
  • Dbf
  • Dict

我們演示一下,其中幾種數據格式,如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

執行上述代碼,輸出結果為:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


數據導出

終於介紹到,讓我激動不已的數據導出了,簡單而優雅,通用而高效。

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

導出 dataset_o.xlsx 文件如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式


使用DataBook 導出多頁數據

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式

導出 dataset_ot.xlsx 文件如下:

簡潔而優雅,Python Tablib實現將數據導出為Excel, Json等N種格式



分享到:


相關文章: