API

这部分文档涵盖了tablib的所有接口。对于tablib依赖于外部库的部分,我们在这里编写最重要的文档,并提供到规范文档的链接。

数据集对象

class tablib.Dataset(*args, **kwargs)[源代码]

这个 Dataset 对象是tablib的核心。它提供所有核心功能。

通常你会创建一个 Dataset 在主模块中创建实例,并在收集数据时追加行。::

data = tablib.Dataset()
data.headers = ('name', 'age')

for (name, age) in some_collector():
    data.append((name, age))

设置列也是类似的。列数据长度必须等于数据的当前高度,并且必须设置标题。:

data = tablib.Dataset()
data.headers = ('first_name', 'last_name')

data.append(('John', 'Adams'))
data.append(('George', 'Washington'))

data.append_col((90, 67), header='age')

还可以在实例化时设置行和标头。如果处理几十或几百个 Dataset 物体。::

headers = ('first_name', 'last_name')
data = [('John', 'Adams'), ('George', 'Washington')]

data = tablib.Dataset(*data, headers=headers)
参数
  • *args -- (可选)要填充数据集的行列表

  • headers -- (可选)数据集标题行的列表字符串

  • title -- (可选)用作数据集标题的字符串

格式属性定义

如果查看代码,则在 Dataset 对象。要添加对新格式的支持,请参见 Adding New Formats .

add_formatter(col, handler)[源代码]

将格式化程序添加到 Dataset .

0.9.5 新版功能.

参数
  • col -- 列到。接受index int或header str。

  • handler -- 对每个单元格值执行的回调函数的引用。

append(row, tags=[])[源代码]

将行添加到 Dataset . 见 Dataset.insert 其他文件。

append_col(col, header=None)[源代码]

将列添加到 Dataset . 见 Dataset.insert_col 其他文件。

append_separator(text='-')[源代码]

添加一个 separatorDataset .

property dict

的本地python表示 Dataset 对象。如果设置了头,将返回一个python字典列表。如果未设置头,则将返回元组(行)列表。

还可以通过设置数据集来导入数据集对象。 Dataset.dict 属性:::

data = tablib.Dataset()
data.dict = [{'age': 90, 'first_name': 'Kenneth', 'last_name': 'Reitz'}]
export(format, **kwargs)[源代码]

出口 Dataset 对象到 format .

参数

**kwargs -- (可选)自定义格式配置 export_set .

extend(rows, tags=[])[源代码]

将行列表添加到 Dataset 使用 Dataset.append

filter(tag)[源代码]

返回的新实例 Dataset ,不包括不包含给定 tags .

get_col(index)[源代码]

返回 Dataset 在给定的索引处。

property headers

可选择的 用于标题行和属性名的字符串列表。

必须手动设置。给定的列表长度必须等于 Dataset.width .

property height

当前在 Dataset . 不能直接修改。

insert(index, row, tags=[])[源代码]

Dataset 在给定的索引处。

插入的行大小(高度或宽度)必须正确。

默认行为是将给定行插入到 Dataset 在给定索引处的对象。

insert_col(index, col=None, header=None)[源代码]

将列插入到 Dataset 在给定的索引处。

插入的列必须是正确的高度。

还可以插入单个可调用对象的列,该列将添加一个新列,每个列的可返回值都作为列中的项。::

data.append_col(col=random.randint)

如果插入列,并且 Dataset.headers 如果已设置,则必须设置标题属性,并将其视为该行的标题。

动态列 一个深入的例子。

在 0.9.0 版更改: 如果插入列,并且 Dataset.headers 如果已设置,则必须设置标题属性,并将其视为该行的标题。

0.9.0 新版功能: 如果插入一行,则可以添加 tags 到要插入的行。这让你有能力 filter 你的 Dataset 后来。

insert_separator(index, text='-')[源代码]

将分隔符添加到 Dataset 在给定索引处。

load(in_stream, format=None, **kwargs)[源代码]

进口 in_streamDataset 对象使用 format . in_stream 可以是类似文件的对象、字符串或bytestring。

参数

**kwargs -- (可选)自定义格式配置 import_set .

lpop()[源代码]

删除并返回 Dataset .

lpush(row, tags=[])[源代码]

Dataset . 见 Dataset.insert 其他文件。

lpush_col(col, header=None)[源代码]

将列添加到 Dataset . 见 Dataset.insert 其他文件。

pop()[源代码]

删除并返回 Dataset .

remove_duplicates()[源代码]

从中删除所有重复行 Dataset 对象,同时保持原始顺序。

rpop()[源代码]

删除并返回 Dataset .

rpush(row, tags=[])[源代码]

Dataset . 见 Dataset.insert 其他文件。

rpush_col(col, header=None)[源代码]

将列添加到 Dataset . 见 Dataset.insert 其他文件。

sort(col, reverse=False)[源代码]

排序A Dataset 由特定列、给定的字符串(用于头)或整数(用于列索引)。顺序可以通过设置反转。 reverseTrue .

返回新的 Dataset 列已排序的实例。

stack(other)[源代码]

栈二 Dataset 通过在行级别联接实例,并返回新的组合实例 Dataset 实例。

stack_cols(other)[源代码]

栈二 Dataset 通过在列级别联接实例,并返回一个新的组合 Dataset 实例。如果任一 Dataset 设置了头,而另一个也必须设置头。

subset(rows=None, cols=None)[源代码]

返回的新实例 Dataset ,仅包括指定的行和列。

transpose()[源代码]

转置A Dataset ,将行转换为列,反之亦然,返回新的 Dataset 实例。原始实例的第一行成为新的标题行。

property width

当前位于 Dataset . 不能直接修改。

wipe()[源代码]

Dataset 对象。

数据本对象

class tablib.Databook(sets=None)[源代码]

一本书 Dataset 物体。

add_sheet(dataset)[源代码]

添加给定 DatasetDatabook .

export(format, **kwargs)[源代码]

出口 Databook 对象到 format .

参数

**kwargs -- (可选)自定义格式配置 export_book .

load(in_stream, format, **kwargs)[源代码]

进口 in_streamDatabook 对象使用 format . in_stream 可以是类似文件的对象、字符串或bytestring。

参数

**kwargs -- (可选)自定义格式配置 import_book .

property size

的编号 Dataset 内的对象 Databook .

wipe()[源代码]

移除所有 Dataset 来自的对象 Databook .

功能

tablib.detect_format(stream)[源代码]

返回给定流的格式名(像object、string或bytestring这样的文件)。

tablib.import_set(stream, format=None, **kwargs)[源代码]

返回给定流的数据集(类似于文件的对象、字符串或bytestring)。

例外情况

class tablib.InvalidDatasetType[源代码]

你试图添加一些看起来不太正确的内容。

class tablib.InvalidDimensions[源代码]

你想加一些不太合适的东西。

class tablib.UnsupportedFormat[源代码]

你想添加一些味道不太好的东西。

现在,去开始一些 Tablib Development .