Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Python Module for Tabular Datasets in XLS, CSV, JSON, YAML, &c.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
tablib
.gitignore
AUTHORS
HISTORY.rst
LICENSE
MANIFEST
MANIFEST.in
NOTICE
README.rst
fabfile.py
setup.py
tabbed

README.rst

Tablib: format-agnostic tabular dataset library

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

Tablib is a format-agnostic tabular dataset library, written in Python. It is a full python module which doubles as a CLI application for quick dataset conversions.

Formats supported:

  • JSON
  • YAML
  • Excel
  • CSV

At this time, Tablib supports the export of it's powerful Dataset object instances into any of the above formats. Import is underway.

Please note that tablib purposefully excludes XML support. It always will.

Features

Populate fresh data files:

headers = ('first_name', 'last_name', 'gpa')

data = [
    ('John', 'Adams', 4.0),
    ('George', 'Washington', 2.6),
    ('Henry', 'Ford', 2.3)
]

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

# Establish file location and save
data.save('test.xls')

Intelligently add new rows:

data.append('Bob', 'Dylan', 3.2)

print data.headers
# >>> ('first_name', 'last_name', 'gpa')

Slice rows:

print data[0:1]
# >>> [('John', 'Adams', 4.0), ('George', 'Washington', 2.6)]

Slice columns by header:

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

Manipulate rows by index:

del data[0]
print data[0:1]
# >>> [('George', 'Washington', 2.6), ('Henry', 'Ford', 2.3)]

Roadmap

  • Import datasets from CSV, JSON, YAML
  • Auto-detect import format
  • Plugin support
Something went wrong with that request. Please try again.