mirror of
https://github.com/kennethreitz/tablib.git
synced 2026-06-05 23:10:17 +00:00
readme
This commit is contained in:
+52
-49
@@ -1,12 +1,15 @@
|
||||
**Tabbed is under active documentation-driven development.**
|
||||
|
||||
Tabbed: format-agnostic tabular dataset library
|
||||
===============================================
|
||||
|
||||
::
|
||||
_____ ______ ______ _________
|
||||
__ /_______ ____ /_ ___ /_ _____ ______ /
|
||||
_ __/_ __ `/__ __ \__ __ \_ _ \_ __ /
|
||||
/ /_ / /_/ / _ /_/ /_ /_/ // __// /_/ /
|
||||
\__/ \__,_/ /_.___/ /_.___/ \___/ \__,_/
|
||||
|
||||
_____ ______ ______ _________
|
||||
__ /_______ ____ /_ ___ /_ _____ ______ /
|
||||
_ __/_ __ `/__ __ \__ __ \_ _ \_ __ /
|
||||
/ /_ / /_/ / _ /_/ /_ /_/ // __// /_/ /
|
||||
\__/ \__,_/ /_.___/ /_.___/ \___/ \__,_/
|
||||
|
||||
*Tabbed is under active documentation-driven development.*
|
||||
|
||||
|
||||
Tabbed is a format-agnostic tabular dataset library, written in Python.
|
||||
@@ -21,7 +24,7 @@ Formats supported:
|
||||
- CSV
|
||||
- HTML
|
||||
|
||||
Please note that tabbed _purposefully_ excludes XML support. It always will.
|
||||
Please note that tabbed *purposefully* excludes XML support. It always will.
|
||||
|
||||
|
||||
Features
|
||||
@@ -29,66 +32,66 @@ Features
|
||||
|
||||
Convert datafile formats via API: ::
|
||||
|
||||
tabbed.import(filename='data.csv').export('data.json')
|
||||
tabbed.import(filename='data.csv').export('data.json')
|
||||
|
||||
|
||||
Convert datafile formats via CLI: ::
|
||||
|
||||
$ tabbed data.csv data.json
|
||||
|
||||
$ tabbed data.csv data.json
|
||||
|
||||
Convert data formats via CLI pipe interface: ::
|
||||
|
||||
$ curl http://domain.dev/dataset.json | tabbed --to excel | gist -p
|
||||
|
||||
|
||||
|
||||
$ curl http://domain.dev/dataset.json | tabbed --to excel | gist -p
|
||||
|
||||
|
||||
Populate fresh data files: ::
|
||||
|
||||
headers = ('first_name', 'last_name', 'gpa')
|
||||
|
||||
headers = ('first_name', 'last_name', 'gpa')
|
||||
|
||||
data = [
|
||||
('John', 'Adams', 4.0),
|
||||
('George', 'Washington', 2.6),
|
||||
('Henry', 'Ford', 2.3)
|
||||
]
|
||||
|
||||
data = tabbed.Data(*data, headers=headers)
|
||||
data = [
|
||||
('John', 'Adams', 4.0),
|
||||
('George', 'Washington', 2.6),
|
||||
('Henry', 'Ford', 2.3)
|
||||
]
|
||||
|
||||
data = tabbed.Data(*data, headers=headers)
|
||||
|
||||
# Establish file location and save
|
||||
data.save('test.xls')
|
||||
|
||||
# Establish file location and save
|
||||
data.save('test.xls')
|
||||
|
||||
|
||||
Intelligently add new rows: ::
|
||||
|
||||
data.addRow('Bob', 'Dylan')
|
||||
# >>> Warning: Existing column count is 3
|
||||
|
||||
print data.headers
|
||||
# >>> ('first_name', 'last_name', 'gpa')
|
||||
|
||||
data.addRow('Bob', 'Dylan')
|
||||
# >>> Warning: Existing column count is 3
|
||||
|
||||
print data.headers
|
||||
# >>> ('first_name', 'last_name', 'gpa')
|
||||
|
||||
|
||||
Slice rows: ::
|
||||
Slice rows: ::
|
||||
|
||||
print data[0:1]
|
||||
# >>> [('John', 'Adams', 4.0), ('George', 'Washington', 2.6)]
|
||||
|
||||
print data[0:1]
|
||||
# >>> [('John', 'Adams', 4.0), ('George', 'Washington', 2.6)]
|
||||
|
||||
|
||||
Slice columns by header: ::
|
||||
|
||||
print data['first_name']
|
||||
# >>> ['John', 'George', 'Henry']
|
||||
|
||||
print data['first_name']
|
||||
# >>> ['John', 'George', 'Henry']
|
||||
|
||||
|
||||
Manipulate rows by index: ::
|
||||
|
||||
data.delRow(0)
|
||||
print data[0:1]
|
||||
# >>> [('George', 'Washington', 2.6), ('Henry', 'Ford', 2.3)]
|
||||
|
||||
# Update saved file
|
||||
data.save()
|
||||
|
||||
data.delRow(0)
|
||||
print data[0:1]
|
||||
# >>> [('George', 'Washington', 2.6), ('Henry', 'Ford', 2.3)]
|
||||
|
||||
# Update saved file
|
||||
data.save()
|
||||
|
||||
|
||||
Export to various formats: ::
|
||||
|
||||
# Save copy as CSV
|
||||
data.export('backup.csv')
|
||||
# Save copy as CSV
|
||||
data.export('backup.csv')
|
||||
Reference in New Issue
Block a user