| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- 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
|