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.8.4.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

jict-2.8.4-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jict-2.8.4.tar.gz
Algorithm Hash digest
SHA256 5bfec5f556f37d30a4e0d1d47b0ef940e4aea660580faa6d3b31e62e7f0a6e25
MD5 ee5342d5f9036f5b9d7c92a31c9f8047
BLAKE2b-256 9af66680367b408745269e5bad7df4adffea1bdeb07afa25bb4e4100d8e0c0ed

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jict-2.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5d4743ddf49279f18583ef6bcd18edf628d3e2e02a6a0785b8cec1ec6af52b79
MD5 386ddd83a445a7c7d76cdb7c769f010d
BLAKE2b-256 e3b2db9a7970a8a8d28a2fcab2fb58085b97ab8d65c8ddf6e27522e51a32edb1

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