Print python object in table/json format
Project description
hprint
Print python object as table/json format in an easy way based on python-tabulate.
The main use cases of the library are:
- table print list of records (dict)
- customize table header name
- customize missing value
- automatically print json string when fail to print as table
- support expanded output, like postgres
Installation
To install the Python library and the command line utility, run:
pip install -U hprint
Library usage
The module provides just one function, hprint
or pretty_print
(which is just alias of hprint), which takes a list of
dict or just a single dict as the first argument, and outputs a
nicely formatted plain-text table or json string as fallback.
>>> from hprint import pretty_print
>>> data = [{'name': 'John Doe', 'age': 18}, {'name': 'Jane Doe', 'age': 20}]
>>> pretty_print(data)
name age
-------- -----
John Doe 18
Jane Doe 20
Show index
>>> pretty_print(data, numbered=True)
No name age _no
---- -------- ----- -----
1 John Doe 18 1
2 Jane Doe 20 2
>>> pretty_print(data, numbered=True, offset=-1)
No name age _no
---- -------- ----- -----
0 John Doe 18 0
1 Jane Doe 20 1
Expanded output
>>> pretty_print(data, x=True)
-[ RECORD 1 ]--+---------
name | John Doe
age | 18
-[ RECORD 2 ]--+---------
name | Jane Doe
age | 20
Customize Headers
>>> pretty_print(data, mappings={'NAME': 'name', 'AGE': 'age'})
NAME AGE
-------- -----
John Doe 18
Jane Doe 20
>>> pretty_print(data, mappings={'NAME': 'name', 'AGE': 'age'}, header=False)
-------- --
John Doe 18
Jane Doe 20
-------- --
>>> pretty_print(data, mappings={'NAME': 'name', 'AGE': 'age'}, header=False, x=True)
NAME | John Doe
AGE | 18
NAME | Jane Doe
AGE | 20
Missing value
>>> pretty_print(data, mappings={'NAME': 'name', 'AGE': 'age', 'GENDER': 'gender'})
NAME AGE GENDER
-------- ----- --------
John Doe 18 n/a
Jane Doe 20 n/a
>>> pretty_print(data, mappings={'NAME': 'name', 'AGE': 'age', 'GENDER': 'gender'}, missing_value='unknown')
NAME AGE GENDER
-------- ----- --------
John Doe 18 unknown
Jane Doe 20 unknown
Table format
Supported format are the same with those supported by tabulate.
>>> pretty_print(data, tf='plain')
name age
John Doe 18
Jane Doe 20
>>> pretty_print(data, tf='github')
| name | age |
|----------|-------|
| John Doe | 18 |
| Jane Doe | 20 |
>>> pretty_print(data, tf='pretty')
+----------+-----+
| name | age |
+----------+-----+
| John Doe | 18 |
| Jane Doe | 20 |
+----------+-----+
>>> pretty_print(data, tf='psql')
+----------+-------+
| name | age |
|----------+-------|
| John Doe | 18 |
| Jane Doe | 20 |
+----------+-------+
>>> pretty_print(data, tf='orgtbl')
| name | age |
|----------+-------|
| John Doe | 18 |
| Jane Doe | 20 |
>>> pretty_print(data, tf='html')
<table>
<thead>
<tr><th>name </th><th style="text-align: right;"> age</th></tr>
</thead>
<tbody>
<tr><td>John Doe</td><td style="text-align: right;"> 18</td></tr>
<tr><td>Jane Doe</td><td style="text-align: right;"> 20</td></tr>
</tbody>
</table>
Print as JSON
>>> pretty_print(data, as_json=True)
[
{
"age": 18,
"name": "John Doe"
},
{
"age": 20,
"name": "Jane Doe"
}
]
Raw output
>>> s = pretty_print(data, raw=True)
>>> s
'name age\n-------- -----\nJohn Doe 18\nJane Doe 20'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
hprint-2.0.1.tar.gz
(4.8 kB
view details)
Built Distribution
File details
Details for the file hprint-2.0.1.tar.gz
.
File metadata
- Download URL: hprint-2.0.1.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5d5f68574cea2042afb9420aeb8899223634664a62c0ea9501f92d75e72532a |
|
MD5 | 1e23abc0e20bf1f5ffa47268d272e5c5 |
|
BLAKE2b-256 | b152f61edcf9411121362196a08b3c0954b3ac9d061734b95d8770d8e3c6b604 |
File details
Details for the file hprint-2.0.1-py3-none-any.whl
.
File metadata
- Download URL: hprint-2.0.1-py3-none-any.whl
- Upload date:
- Size: 4.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc16fa162402186824ad362aefb20fee2543bf77debe1c652d4c366bae9daa9b |
|
MD5 | c61833f1409d4442436b3b55faa05aa1 |
|
BLAKE2b-256 | 51a1661ca95e423e205487b0cdf896a4e80cba08700b81b059aaff46df810445 |