
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
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.
pip install json_handler
No dependencies!
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]
}
}
If file does not exist, it will be automatically created after using save() method.
from json_handler import JsonHandler
handler = JsonHandler('example2.json')
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"
}
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_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
}
You can use Python built-in dict methods with JsonHandler object. For example:
from json_handler import JsonHandler
handler = JsonHandler('example4.json', 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
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()
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'}]}
FAQs
Manipulate JSON data or dict values as attributes of an object.
We found that json-handler demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.