JSON Tools
Collection of JSON tools for Python 3 that help developers work with JSON (Javascript Object Notation) easier.
The source for this project is available here.
Overview
FrozenJSON
Allows a JSON to be loaded into a pseudo python object dynamically.
This idea and conception was from the book "Fluent Python: Clear, Concise, and Effective Programming" by Luciano Ramalho.
Basic Usage
For example, say we have a JSON in a file that looks like the following:
{
"_id": "5e52d75618947399f093ac7d",
"isActive": false,
"picture": "http://placehold.it/32x32",
"latitude": -49.694182,
"longitude": 126.901299,
"tags": [
"non",
"est",
"sint"
]
}
If a developer wanted to treat this JSON as a python object, they could create a FrozenJSON using the following syntax:
import FrozenJSON
x = Frozen.of(<file_path>)
print(x.isActive)
...False
print(x.tags)
...["non","est","sint"]
print(x.tags[0])
..."non"
The of
method is a dynamic constructor that is able to discern whether the data passed in a JSON string, the path to a file, a reference to a file itself, or a python dictionary.
So something like below is perfectly legal:
import FrozenJSON
data = {
"name": "Ryan Long",
"class": "Geometry"
}
x = FrozenJSON.of(data)
print(x.name)
..."Ryan Long"
print(x.class_)
..."Geometry"
Notice that although class
is a keyword, FrozenJSON is still able to assign it to a key by
appending "_" to the end. This is true for all python keywords that are also used as keys
and happens automatically.