_____ ______ ___________ ______ __ /_______ ____ /_ ___ /___(_)___ /_ _ __/_ __ `/__ __ \__ / __ / __ __ \ / /_ / /_/ / _ /_/ /_ / _ / _ /_/ / \__/ \__,_/ /_.___/ /_/ /_/ /_.___/
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.
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=('age', 90, 67, 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...........
>>> print data.json() [ { "last_name": "Adams", "age": 90, "first_name": "John" }, { "last_name": "Ford", "age": 83, "first_name": "Henry" } ]
>>> print data.yaml() - {age: 90, first_name: John, last_name: Adams} - {age: 83, first_name: Henry, last_name: Ford}
>>> print data.csv() first_name,last_name,age John,Adams,90 Henry,Ford,83
>>> data.xls('people.xls')
It's that easy.
To install tablib, simply:
$ pip install tablib
Or, if you absolutely must:
$ easy_install tablib
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.
- 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
- Ability to assign types to rows (set, regex=, &c.)
- Plugin support