Skip to main content

Store data in JSON format

Project description

A self saving json based config file. Storable data are all classical JSON datatypes including lists/arrays and dictionaries, which will be stored as JSON Objects.

The Json_Dict object can be initialized via jd = JsonDict()

The Object can be initialized with a file (as path) , which will be created if not existend (turn off by passing createfile=False as parameter). You can also pass initial data to the instance via the data. The data can be in the form of another JsonDict, an JSON string or an JSON serializable dictionary. If a file is specified the JsonDict will first try to read the file and if this does not work fall back to the initial provided data.

If a file is provided the JsonDict will be saved to the file on value addition/change. This can be turned of generally by providing the initial argument autosave=False or setting the autosave attribute to False any time. For not saving at a specific request you can also pass the autosave=False parameter to a get or put request.

path_to_file content: {"a":1,"b":{"c":"foo","d":100},"d":["bar",0.1]}
jd = JsonDict(file=path_to_file, creatfile=False, autosave=False)
will generate a JsonDict initialized with the file content but never overwrites it unless js.save() is called. If autosave is not passed during initialization or set to True every change to the JsonDict will be saved directly to the file.

The call jd = JsonDict(file=path_to_invalif_file,data={'a':1}, creatfile=False, autosave=False) will initialize the object with with the data provided by the data parameter since the file is invalid and not created during initialization

The data in the JsonDic object is set via the jd.put("key","subkey","subsubkey",...,value=value). where all the args are used as keys to the value which is set by the value kwarg.
In this manner js.put("b","c",value="foo") will change a JsonDict with the data{'a':1} to {'a':1,'b':{'c':'foo'}}
Keep in mind that every type can be used as a key but it will be transformed to the corresponding string representation!

To get the data from the JsonDict you can use jd.put("key","subkey","subsubkey",...,default=defaultvalue) respectively. The optional default parameter can be used to set the value if the keystructure is not present in the dict otherwise None will be returned. The requested structure will be saved in the JsonDict whether or not it is already present or not!

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

Json_Dict-0.2.1605896643.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

Json_Dict-0.2.1605896643-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file Json_Dict-0.2.1605896643.tar.gz.

File metadata

  • Download URL: Json_Dict-0.2.1605896643.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for Json_Dict-0.2.1605896643.tar.gz
Algorithm Hash digest
SHA256 dc9aab6ea06bb9df09fb09fdbf80ecec5e1001a769df0e5cea04b850b4a969d3
MD5 f0b690e9c2eeadc6c9c9f0fd1ee70d49
BLAKE2b-256 426b974c3b90b94eaed1317716c63a9e440931eafb8f746cac1d6aaab624d38f

See more details on using hashes here.

File details

Details for the file Json_Dict-0.2.1605896643-py3-none-any.whl.

File metadata

  • Download URL: Json_Dict-0.2.1605896643-py3-none-any.whl
  • Upload date:
  • Size: 17.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.1.3.post20200330 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for Json_Dict-0.2.1605896643-py3-none-any.whl
Algorithm Hash digest
SHA256 2a79c123a8d5c9f618fb14f87974bc173bb38c95415fd9577347444cbb8f5d6e
MD5 b3de6fbfc50274076e86e9584368a5cf
BLAKE2b-256 3d3ef3de2ea03fedf520ac0741a5f0d21795f98e1f987ad7dbd13bab7b987c22

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