Skip to main content

Format agnostic tabular data library (XLS, JSON, YAML, CSV)

Project description

Tablib: format-agnostic tabular dataset library

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

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

Output formats supported:

  • Excel

  • JSON

  • YAML

  • CSV

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

Note that tablib purposefully excludes XML support. It always will.

Usage

Populate fresh data files:

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

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

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

Intelligently add new rows:

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

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]

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').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, and send a pull request. Make sure you add yourself to AUTHORS.

Roadmap

  • Add ability to add/remove full columns

  • Import datasets from CSV, JSON, YAML

  • Release CLI Interface

  • Auto-detect import format

  • Add possible other exports (SQL?)

  • Possibly plugin-ify format architecture

  • Plugin support

History

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tablib-0.6.2.tar.gz (8.6 kB view details)

Uploaded Source

File details

Details for the file tablib-0.6.2.tar.gz.

File metadata

  • Download URL: tablib-0.6.2.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tablib-0.6.2.tar.gz
Algorithm Hash digest
SHA256 b9c7ac7975a400af856fdbbd9161e5c483aa57f58632c7c26d4aea620054c62f
MD5 31edaefe493397b61d30c56e08962f31
BLAKE2b-256 2d0d73fac2d46b4ec5de30d73bd2a792700446d2a1bc85dd51ad78dbbc19e76c

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page