我已成功将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
一旦我有了数据集,我就可以开始研究它了。 有谁知道怎么做?
答案 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