Skip to main content

Python dictionary with automatic and arbitrary levels of nestedness

Project description

jict

jict is basically a nested dict.
with some extra features

simple use example :

from jict import jict

jct = jict()
jct['level1']['level2']['level3'] = 'created nested dictionary'

print(jct)
# output :
# {
#   "level1": {
#     "level2": {
#       "level3": "created nested dictionary"
#     }
#   }
# }

# jict to dict
mydict = jct.dict()

jict utilities:

from jict import jict

# our jict
jct = jict({
    'val': { 'list':[ [{ 'find-me': 'secret' }] ] }
})

# we can easly find the key we need
print(jct.get('find-me'))

# we also can rename the keys
# output : secret
jct.rename('find-me','password')
print(jct.get('find-me'))
# output : None
print(jct.get('password'))
# output : secret

# we also can replace values
jct.replace('password','mypass')
print(jct.get('password'))
# output : mypass


def foo(val):
    val[0][0]['name'] = 'jict'
    return val

# we also can replace with callbacks and multiple values
jct.replace({
    'password':'mypass',
    'list': foo,
})

# callbacks also work with this: jct.replace('list' , foo)

print(jct.get('list'))
# output: [[{'password': 'mypass', 'name': 'jict'}]]

also you can easly load a .json , .yaml file

from jict import jict

jctj = jict('test.json')
print(jctj)
# output :
# {
#   "test": "json-content"
# }

jcty = jict('test.yaml')
print(jctj)
# output :
# {
#   "test": "yaml-content"
# }

# if you want to save the modifed values
jctj.save()
jcty.save()

# you can also save to another file
jcty.save('newfile.json')

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

jict-2.5.2.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

jict-2.5.2-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file jict-2.5.2.tar.gz.

File metadata

  • Download URL: jict-2.5.2.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.24.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.2

File hashes

Hashes for jict-2.5.2.tar.gz
Algorithm Hash digest
SHA256 ce3767799386117e67d60c5ad7c8a473897ba76fdb93bb7b582eb6b3d2c02f12
MD5 e3c68e6175ac5438fb3f6c463ff56708
BLAKE2b-256 c4cfd88f2792f425853a75cabb91b7087c6649ab1f810abccb1529f56b51a9c3

See more details on using hashes here.

File details

Details for the file jict-2.5.2-py3-none-any.whl.

File metadata

  • Download URL: jict-2.5.2-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.24.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.2

File hashes

Hashes for jict-2.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7fd41d9f854a9a6928e56493e14980d706c27d14286bf2cbb0b06b9addefb0de
MD5 8cd601724ddd778fb6ce428254cafe41
BLAKE2b-256 78cf5c01c70eea18cc73319fc54dcd438f33f50f4eacd5bea8bdf88212f21601

See more details on using hashes here.

Supported by

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