Tablib Unbundle Databook进入数据集

时间:2016-06-02 10:50:59

标签: python

我已成功将Excel文件作为Databook导入tablib。

imported_data = tablib.Databook().load('xlsx',open('file.xlsx', 'rb').read())

现在我已经导入了它,我似乎无法对Databook做任何事情。我想我需要获取一个数据集(相当于一个Excel工作表)但我无法弄清楚如何解开数据手册(或者更好的是,将特定工作表提取为数据集)。

Python 2.7。

Tablib参考:http://docs.python-tablib.org/en/latest/api/#tablib.Databook

imported_data
<databook object>
print imported_data <databook object>
imported_data.size: 1
print imported_data[0]: TypeError 
'Databook' object does not support indexing
data = tablib.Dataset(imported_data)
TypeError: 'Databook' object is not iterable

一旦我有了数据集,我就可以开始研究它了。 有谁知道怎么做?

2 个答案:

答案 0 :(得分:1)

不知怎的,我刚刚开始使用tablib。无论如何,我在使用数据手册时遇到了绊脚石并遇到了这个问题。毫无疑问,这不再是一个紧迫的问题,但对于那些也发现自己的人来说,Databook.sheets方法会返回Dataset个对象的列表:

In [2]: databook = tablib.Databook().load('xlsx', open('file.xlsx', 'rb').read())

In [3]: databook.sheets()
Out[3]: [<sheet1 dataset>, <sheet2 dataset>, <sheet3 dataset>]

答案 1 :(得分:0)

这是我能够正确获取名称和数据的唯一方法 通过声明它是一个数据手册,以及我导入的文件类型,我能够访问数据集的标题和每个数据集中的所有数据。

imported_data = tablib.Databook()  # declare the databook first
imported_data.xlsx = open(import_filename, 'rb').read()  

for dataset in imported_data.sheets():
    print(dataset.title)  # returns all the sheet title names
    print(dataset)  # returns the data in each sheet