Json shorthand for python
Project description
Jshort
Python shorthand for json. inspired by q
This package allows json load, dump from and to file with few code.
Installation
pip install jshort
Usage
# This is an instance
import j
# Loads json from file, stores it in data property
h = j(input_path='/tmp/data.json')
# Get data
h.data
#{
# "foo": "bar"
#}
# Display colored content
print(h)
# or
h.prt()
# {
# "oh": "dayum!"
# }
# The same, in short
# For data
j(i='/tmp/data.json').d
# Print
j(i='/tmp/data.json').prt()
# Write json
j(output_path='/tmp/out.json', data={"foo": "bar"})
# Also write data in a shorter way and change print content setting indentation to 2
j(o='/tmp/out.json', d={"hey": "jude"}, indent=2).prt()
# {
# "hey": "jude"
# }
# Traversing json documents using https://pypi.org/project/jsonpath-ng/
j(d=my_dict).path('key')
# Shorter and with more filtering
j(d=my_dict).p('sub.*')
# Or fintering on an array and from a file
j(i='/tmp/data.json').p('key[1]')
Have a look at https://pypi.org/project/jsonpath-ng/ for more about json traversing.
If only one result is returned from filtering, the path method returns only the result otherwise it is a list of results.
Json as object
It is possible to manipulate json in j instance as a python object. Try the following:
o = j(d={'a': {'b': 1}}).obj
#raw data
o.data_
#{'a': {'b': 1}}
#pretty print it
print(o)
#dumps with syntax coloration the json content
o.c
#None
o.a
#{'b': 1}
o.a.b
#1
o.a['test'] = 1
print(o.d_)
#{'a': {'b': 1}, 'test': 1}
Enjoy.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jshort-1.1.2.tar.gz.
File metadata
- Download URL: jshort-1.1.2.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd50f90c4dd3c37af80d8c09f10925073999326aac1df89798b4e55820cd5273
|
|
| MD5 |
105d56c3b10eaf994cb1831653afd7bd
|
|
| BLAKE2b-256 |
a8a9d8590c65d2a7600641cd30eff32392beb07b6930ba55991c678db1fac4b9
|
File details
Details for the file jshort-1.1.2-py2.py3-none-any.whl.
File metadata
- Download URL: jshort-1.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e09a599bc0ed9beb8f0ccb75cff39a0ef7e1e1b0a158808b5e26afd59db688a5
|
|
| MD5 |
b73967a37961bb609e05adf6d8b7ce0c
|
|
| BLAKE2b-256 |
a92da4bed131dd046ca00d182b71efac1d961753c67c257c285687b257a374b9
|