格式¶
Tablib支持各种不同的表格格式,包括输入和输出。而且,你可以 register your own formats .
命令行接口¶
这个 cli
格式当前仅导出。导出将生成适合终端的表示表。
导出到CLI时,可以使用 tablefmt
参数,支持的格式为:
>>> import tabulate
>>> list(tabulate._table_formats)
['simple', 'plain', 'grid', 'fancy_grid', 'github', 'pipe', 'orgtbl',
'jira', 'presto', 'psql', 'rst', 'mediawiki', 'moinmoin', 'youtrack',
'html', 'latex', 'latex_raw', 'latex_booktabs', 'tsv', 'textile']
例如::
dataset.export("cli", tablefmt="github")
dataset.export("cli", tablefmt="grid")
此格式是可选的,请使用 pip install "tablib[cli]"
使格式可用。
csv¶
导入CSV数据时,可以指定数据源的第一行是否为带有 headers
布尔参数(默认为 True
):
import tablib
tablib.import_set(your_data_stream, format='csv', headers=False)
还可以提供 skip_lines
参数指定在开始读取数据之前应跳过的行数。
在 3.1.0 版本发生变更: 这个 skip_lines
参数已添加。
使用导出时 csv
格式,则顶行将包含标题(如果已设置)。否则,首行将包含数据集的第一行。
导入CSV数据源或将数据集导出为CSV时,可以传递 csv.reader()
和 csv.writer()
功能。例如::
tablib.import_set(your_data_stream, format='csv', dialect='unix')
dataset.export('csv', delimiter=' ', quotechar='|')
行尾
导出默认情况下使用\r\n行尾,因此,请确保包括 newline=''
否则,在Excel中打开文件时,每行之间将出现一个空行:
with open('output.csv', 'w', newline='') as f:
f.write(dataset.export('csv'))
如果不这样做,并且在windows上导出文件,则csv文件将在excel中打开,每行之间有一个空行。
dbf公司¶
使用导入/导出 dBASE 格式。
二进制警告
这个 dbf
格式包含二进制数据,因此请确保以二进制模式写入:
with open('output.dbf', 'wb') as f:
f.write(dataset.export('dbf')
df(数据帧)¶
使用导入/导出 pandas 数据帧格式。此格式是可选的,请使用 pip install "tablib[pandas]"
使格式可用。
HTML¶
导出会生成一个HTML页面,其数据位于 <table>
。如果设置了表头,则它们将用作表头 (thead
)。
在导入HTML时,您可以通过提供 table_id
论点::
import tablib
tablib.import_set(your_html, format='html', table_id='some_table_id')
否则,将导入找到的第一个表。
在 3.6.0 版本发生变更: 添加了导入HTML的功能。已放弃对MarkupPy的依赖。
吉拉¶
这个 jira
格式当前仅导出。导出根据Jira表格语法格式化数据集:
||heading 1||heading 2||heading 3||
|col A1|col A2|col A3|
|col B1|col B2|col B3|
json¶
使用导入/导出 JSON 格式。如果设置了头,将返回一个JSON对象列表。如果没有设置头,则返回列表(行)的JSON列表。
import假设(目前)头存在。
Latex¶
使用导入/导出 LaTeX 格式。此格式仅用于导出。如果设置了标题,它将作为表标题导出。
消耗臭氧层¶
以OpenDocument电子表格格式导出数据。这个 ods
格式当前仅导出。
此格式是可选的,请使用 pip install "tablib[ods]"
使格式可用。
二进制警告
Dataset.ods
包含二进制数据,因此请确保以二进制模式写入:
with open('output.ods', 'wb') as f:
f.write(data.ods)
RST¶
将数据导出为 reStructuredText 数据集的表表示。这个 rst
格式仅导出。
如果第一列中的文本从未换行,则导出将返回一个简单表,否则将返回网格表:
>>> from tablib import Dataset
>>> bits = ((0, 0), (1, 0), (0, 1), (1, 1))
>>> data = Dataset()
>>> data.headers = ['A', 'B', 'A and B']
>>> for a, b in bits:
... data.append([bool(a), bool(b), bool(a * b)])
>>> table = data.export('rst')
>>> table.split('\\n') == [
... '===== ===== =====',
... ' A B A and',
... ' B ',
... '===== ===== =====',
... 'False False False',
... 'True False False',
... 'False True False',
... 'True True True ',
... '===== ===== =====',
... ]
True
tsv公司¶
的变体 csv 以表格格式作为字段分隔符。
xls公司¶
在旧版Excel电子表格表示中导入/导出数据。
此格式是可选的,请使用 pip install "tablib[xls]"
使格式可用。
它的 import_set()
方法还支持 skip_lines
参数,您可以将该参数设置为在开始读取数据之前应跳过的行数。
在 3.1.0 版本发生变更: 这个 skip_lines
的参数 import_set()
已添加。
备注
XLS文件最多限制为65000行。使用 xlsx 以避免这种限制。
二进制警告
这个 xls
文件格式是二进制的,所以请确保以二进制模式写入:
with open('output.xls', 'wb') as f:
f.write(data.export('xls'))
xlsx公司¶
在Excel 07+电子表格中导入/导出数据。
此格式是可选的,请使用 pip install "tablib[xlsx]"
使格式可用。
这个 import_set()
和 import_book()
方法接受关键字参数 read_only
。如果它的值是 True
(默认),xlsx数据源是延迟读取的。懒惰阅读通常会减少时间和内存消耗,尤其是对于大型电子表格。但是,它依赖于xlsx数据源声明正确的维度。某些程序会生成尺寸不正确的xlsx文件。这样的文件可能需要在通过传递关闭此优化的情况下加载 read_only=False
。
这个 import_set()
方法还支持 skip_lines
参数,您可以将该参数设置为在开始读取数据之前应跳过的行数。
在 3.1.0 版本发生变更: 这个 skip_lines
的参数 import_set()
已添加。
备注
当阅读 xlsx
文件包含单元格中的公式,则Tablib将读取单元格值,而不是单元格公式。
在 2.0.0 版本发生变更: 读取单元格值而不是公式。
调用可以将数据导出为xlsx格式 export('xlsx')
。有一些可选参数可用于控制导出。有关可用参数,请参见 tablib.formats._xlsx.XLSXFormat.export_set()
。
二进制警告
这个 xlsx
文件格式是二进制的,所以请确保以二进制模式写入:
with open('output.xlsx', 'wb') as f:
f.write(data.export('xlsx'))
山药¶
在中导入/导出数据 YAML 格式。导出时,如果设置了标题,将返回对象的YAML列表。如果没有设置标题,则将返回列表(行)的YAML列表。
import假设(目前)头存在。
此格式是可选的,请使用 pip install "tablib[yaml]"
使格式可用。