Skip to main content
Tablib: format-agnostic tabular dataset library
===============================================

::

_____ ______ ___________ ______
__ /_______ ____ /_ ___ /___(_)___ /_
_ __/_ __ `/__ __ \__ / __ / __ __ \
/ /_ / /_/ / _ /_/ /_ / _ / _ /_/ /
\__/ \__,_/ /_.___/ /_/ /_/ /_.___/



Tablib is a format-agnostic tabular dataset library, written in Python.

Output formats supported:

- Excel (Sets + Books)
- JSON (Sets + Books)
- YAML (Sets + Books)
- HTML (Sets)
- TSV (Sets)
- CSV (Sets)

Note that tablib *purposefully* excludes XML support. It always will. (Note: This is a joke. Pull requests are welcome.)

Overview
--------

`tablib.Dataset()`
A Dataset is a table of tabular data. It may or may not have a header row. They can be build and manipulated as raw Python datatypes (Lists of tuples|dictionaries). Datasets can be imported from JSON, YAML, and CSV; they can be exported to XLSX, XLS, ODS, JSON, YAML, CSV, TSV, and HTML.

`tablib.Databook()`
A Databook is a set of Datasets. The most common form of a Databook is an Excel file with multiple spreadsheets. Databooks can be imported from JSON and YAML; they can be exported to XLSX, XLS, ODS, JSON, and YAML.

Usage
-----


Populate fresh data files: ::

headers = ('first_name', 'last_name')

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

data = tablib.Dataset(*data, headers=headers)


Intelligently add new rows: ::

>>> data.append(('Henry', 'Ford'))

Intelligently add new columns: ::

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

Slice rows: ::

>>> print data[:2]
[('John', 'Adams', 90), ('George', 'Washington', 67)]


Slice columns by header: ::

>>> print data['first_name']
['John', 'George', 'Henry']

Easily delete rows: ::

>>> del data[1]

Exports
-------

Drumroll please...........

JSON!
+++++
::

>>> print data.json
[
{
"last_name": "Adams",
"age": 90,
"first_name": "John"
},
{
"last_name": "Ford",
"age": 83,
"first_name": "Henry"
}
]


YAML!
+++++
::

>>> print data.yaml
- {age: 90, first_name: John, last_name: Adams}
- {age: 83, first_name: Henry, last_name: Ford}

CSV...
++++++
::

>>> print data.csv
first_name,last_name,age
John,Adams,90
Henry,Ford,83

EXCEL!
++++++
::

>>> open('people.xls', 'wb').write(data.xls)

It's that easy.


Installation
------------

To install tablib, simply: ::

$ pip install tablib

Or, if you absolutely must: ::

$ easy_install tablib

Contribute
----------

If you'd like to contribute, simply fork `the repository`_, commit your
changes to the **develop** branch (or branch off of it), and send a pull
request. Make sure you add yourself to AUTHORS_.




.. _`the repository`: http://github.com/kennethreitz/tablib
.. _AUTHORS: http://github.com/kennethreitz/tablib/blob/master/AUTHORS


History
-------

++++

* Unicode Column Headers

0.9.11 (2011-06-30)
+++++++++++++++++++

* Bugfixes

0.9.10 (2011-06-22)
+++++++++++++++++++

* Bugfixes

0.9.9 (2011-06-21)
++++++++++++++++++

* Dataset API Changes
* ``stack_rows`` => ``stack``, ``stack_columns`` => ``stack_cols``
* column operations have their own methods now (``append_col``, ``insert_col``)
* List-style ``pop()``
* Redis-style ``rpush``, ``lpush``, ``rpop``, ``lpop``, ``rpush_col``, and ``lpush_col``

0.9.8 (2011-05-22)
++++++++++++++++++

* OpenDocument Spreadsheet support (.ods)
* Full Unicode TSV support


0.9.7 (2011-05-12)
++++++++++++++++++

* Full XLSX Support!
* Pickling Bugfix
* Compat Module


0.9.6 (2011-05-12)
++++++++++++++++++

* ``seperators`` renamed to ``separators``
* Full unicode CSV support


0.9.5 (2011-03-24)
++++++++++++++++++

* Python 3.1, Python 3.2 Support (same code base!)
* Formatter callback support
* Various bug fixes



0.9.4 (2011-02-18)
++++++++++++++++++

* Python 2.5 Support!
* Tox Testing for 2.5, 2.6, 2.7
* AnyJSON Integrated
* OrderedDict support
* Caved to community pressure (spaces)


0.9.3 (2011-01-31)
++++++++++++++++++

* Databook duplication leak fix.
* HTML Table output.
* Added column sorting.


0.9.2 (2010-11-17)
++++++++++++++++++

* Transpose method added to Datasets.
* New frozen top row in Excel output.
* Pickling support for Datasets and Rows.
* Support for row/column stacking.


0.9.1 (2010-11-04)
++++++++++++++++++

* Minor reference shadowing bugfix.


0.9.0 (2010-11-04)
++++++++++++++++++

* Massive documentation update!
* Tablib.org!
* Row tagging and Dataset filtering!
* Column insert/delete support
* Column append API change (header required)
* Internal Changes (Row object and use thereof)


0.8.5 (2010-10-06)
++++++++++++++++++

* New import system. All dependencies attempt to load from site-packages,
then fallback on tenderized modules.


0.8.4 (2010-10-04)
++++++++++++++++++

* Updated XLS output: Only wrap if '\\n' in cell.


0.8.3 (2010-10-04)
++++++++++++++++++

* Ability to append new column passing a callable
as the value that will be applied to every row.


0.8.2 (2010-10-04)
++++++++++++++++++

* Added alignment wrapping to written cells.
* Added separator support to XLS.


0.8.1 (2010-09-28)
++++++++++++++++++

* Packaging Fix


0.8.0 (2010-09-25)
++++++++++++++++++

* New format plugin system!
* Imports! ELEGANT Imports!
* Tests. Lots of tests.


0.7.1 (2010-09-20)
++++++++++++++++++

* Reverting methods back to properties.
* Windows bug compensated in documentation.


0.7.0 (2010-09-20)
++++++++++++++++++

* Renamed DataBook Databook for consistency.
* Export properties changed to methods (XLS filename / StringIO bug).
* Optional Dataset.xls(path='filename') support (for writing on windows).
* Added utf-8 on the worksheet level.


0.6.4 (2010-09-19)
++++++++++++++++++

* Updated unicode export for XLS.
* More exhaustive unit tests.


0.6.3 (2010-09-14)
++++++++++++++++++
* Added Dataset.append() support for columns.


0.6.2 (2010-09-13)
++++++++++++++++++
* Fixed Dataset.append() error on empty dataset.
* Updated Dataset.headers property w/ validation.
* Added Testing Fixtures.

0.6.1 (2010-09-12)
++++++++++++++++++

* Packaging hotfixes.


0.6.0 (2010-09-11)
++++++++++++++++++

* Public Release.
* Export Support for XLS, JSON, YAML, and CSV.
* DataBook Export for XLS, JSON, and YAML.
* Python Dict Property Support.

Metadata

Release files for tablib-garetjax 0.9.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tablib-garetjax 0.9.12
File Size Uploaded
tablib-garetjax-0.9.12.tar.gz 701.2 kB Details

Release files / tablib-garetjax-0.9.12.tar.gz

Download URL tablib-garetjax-0.9.12.tar.gz
Size 701.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0ca6423d23975c41d687fd41c874332e22802976415508283a5e03494cad79f9
BLAKE2b-256 checksum
How to use checksums
af14768cefd7e5810701f06ea438b4cb795030f81cea56cc8bd69697a613d24e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.9.12 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page