Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jshort-1.1.2.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

jshort-1.1.2-py2.py3-none-any.whl (3.8 kB view details)

Uploaded Python 2Python 3

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

Hashes for jshort-1.1.2.tar.gz
Algorithm Hash digest
SHA256 fd50f90c4dd3c37af80d8c09f10925073999326aac1df89798b4e55820cd5273
MD5 105d56c3b10eaf994cb1831653afd7bd
BLAKE2b-256 a8a9d8590c65d2a7600641cd30eff32392beb07b6930ba55991c678db1fac4b9

See more details on using hashes here.

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

Hashes for jshort-1.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e09a599bc0ed9beb8f0ccb75cff39a0ef7e1e1b0a158808b5e26afd59db688a5
MD5 b73967a37961bb609e05adf6d8b7ce0c
BLAKE2b-256 a92da4bed131dd046ca00d182b71efac1d961753c67c257c285687b257a374b9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page