Project for dynamically converting json types into dynamic python objects
Project description
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for rlt_json_tools-0.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4d0aace4435bc555e80aa511ac9c9e0d4938ac2a0589c9915a2b1457bd7d85c |
|
MD5 | 3cb7ebf6220c39f362aa492deead6402 |
|
BLAKE2b-256 | e256a3a97562e7b2e95b9b05b79718f5453acf5c837a96b94b834ed177a81441 |