Format agnostic tabular data library (XLS, JSON, YAML, CSV)
Go to file
Kenneth Reitz d611d5a14f Merge pull request #117 from iurisilvio/patch-1
Fix typo: avalable -> available
2014-01-08 11:48:28 -08:00
docs Merge pull request #117 from iurisilvio/patch-1 2014-01-08 11:48:28 -08:00
tablib Merge pull request #63 from jsdalton/fix_unicode_error_in_html_output 2014-01-08 11:47:26 -08:00
.gitignore Add support for tox 2012-05-14 22:24:36 -07:00
.travis.yml put the install back in 2013-08-27 17:34:06 -04:00
AUTHORS @alex 2013-08-25 17:45:48 -04:00
HACKING Added HACKING file. 2011-02-21 02:15:00 -05:00
HISTORY.rst Fix typos. 2012-06-08 14:10:43 +07:00
LICENSE staying with MIT License, for now. 2011-06-21 18:51:54 -04:00
MANIFEST.in Moving tabbed cli to future feature branch. 2010-09-13 16:03:11 -04:00
NOTICE NOTICE: Add license info for xlrd3 and xlwt3 2012-05-15 07:18:15 -07:00
README.rst Write the example file reliably in the readme 2013-08-25 12:11:46 -07:00
TODO.rst todo cleanup 2011-06-05 18:43:08 -04:00
setup.py Merge pull request #68 from msabramo/python3 2012-11-15 18:56:50 -08:00
test_tablib.py Merge pull request #63 from jsdalton/fix_unicode_error_in_html_output 2014-01-08 11:47:26 -08:00
tox.ini test python 3.3 2013-10-27 18:57:26 +00:00
toy.py testing GitHub for Mac 2011-06-22 13:16:09 -04:00

README.rst

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!
++++++
::

	>>> with open('people.xls', 'wb') as f:
	...     f.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