Manipulate JSON data or dict values as attributes of an object.
Project description
JSON Handler
It's easy-to-use library which helps you to work with data in JSON files and Python dictionaries like if they were Python objects.
Installation
pip install json_handler
No dependencies!
Getting Started
Example 1.
You can easily read existing JSON file and modify it. Here is JSON file (example.json):
{
"field_1": "Hi",
"field_2": "Hello world!",
"field_3": {
"sub_field": 123
}
}
We can modify the content of that by using following code:
from json_handler import JsonHandler
handler = JsonHandler('example.json')
handler.field_1 = 123
handler['field_2'] = "What's up?"
handler.field_3 = {}
handler.field_3.sub_field = [1, 2, 3]
handler.save()
The result of modifications will be (example.json):
{
"field_1": 123,
"field_2": "What's up?",
"field_3": {
"sub_field": [1, 2, 3]
}
}
Example 2.
If file does not exist, it will be automatically created if parameter 'auto_create' set to True.
from json_handler import JsonHandler
handler = JsonHandler('example2.json', auto_create=True)
handler.a = 5
handler.b = 'Hi there'
handler.save()
In the same directory file (example2.json) will be created with following content:
{
"a": 5,
"b": "Hi there"
}
Example 3.
There is way to automatically save all changes happening with data. To do that you should just set parameter 'auto_save' to True.
from json_handler import JsonHandler
handler = JsonHandler('example3.json', auto_create=True, auto_save=True)
handler.hi = 'Hello'
handler.five = 5
In the same directory file (example3.json) will be created with following content :
{
"hi": "Hello",
"five": 5
}
Example 4.
You can use Python built-in dict methods with JsonHandler object. For example:
from json_handler import JsonHandler
handler = JsonHandler('example4.json', auto_create=True, auto_save=True)
handler.hi = 'Hello'
handler.five = 5
handler.sub_dict = {}
handler.sub_dict.fine = 'ok'
print(handler.keys())
print(handler.values())
print(handler.items())
The output will be:
dict_keys(['hi', 'five', 'sub_dict'])
dict_values(['Hello', 5, {'fine': 'ok'}])
dict_items([('hi', 'Hello'), ('five', 5), ('sub_dict', {'fine': 'ok'})])
Also you can clear data by using dict.clear() method:
handler.clear()
print(handler)
The output will be:
{}
Yeah, you can actually print JsonHandler object and it will be printed like usual Python dict
Example 5.
You can pretty print your JsonHandler object like any dict object by using built-in python module pprint.
from pprint import pprint
from json_handler import JsonHandler
handler = JsonHandler('test.json')
handler.well = [{'hi': 'hello'} for _ in range(5)]
pprint(handler)
The output will be:
{"well": [{"hi": "hello"},
{"hi": "hello"},
{"hi": "hello"},
{"hi": "hello"},
{"hi": "hello"}]}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.