A convenient library to deal with large json data
Project description
Activejson
A convenient library to deal with large json data
A convenient library to deal with large json data. The purpose of this package is help to deal with complex json-like data, converting them into a more manageable data structure.
Installation
OS X & Linux:
From PYPI
$ pip3 install activejson
from the source
$ git clone https://github.com/dany2691/activejson.git
$ cd activejson
$ python3 setup.py install
Usage example
You can flat a complex dict the next way:
complex_json = {
'cat': {'grass': 'feline', 'mud': 'you never know', 'horse': 'my joke'},
'dolphin': [
{'tiger': [{'bird': 'blue jay'}, {'fish': 'dolphin'}]},
{'cat2': 'feline'},
{'dog2': 'canine'}
],
'dog': 'canine'
}
from activejson import flatten_json
flatten_complex_json = flatten_json(complex_json)
print(flatten_complex_json)
The result could be the next:
{
'cat_grass': 'feline',
'cat_horse': 'my joke',
'cat_mud': 'you never know',
'dog': 'canine',
'dolphin_0_tiger_0_bird': 'blue jay',
'dolphin_0_tiger_1_fish': 'dolphin',
'dolphin_1_cat2': 'feline',
'dolphin_2_dog2': 'canine'
}
On the other hand, is possible to convert that dict into an object with dynamic attributes:
from activejson import FrozenJSON
frozen_complex_json = FrozenJSON(complex_json)
print(frozen_complex_json.cat.grass)
print(frozen_complex_json.cat.mud)
print(frozen_b.dolphin[2].dog2)
The result could be the next:
'feline'
'you never know'
'canine'
To retrieve the underlying json, is possible to use the json property:
frozen_complex_json.json
{
'cat_grass': 'feline',
'cat_horse': 'my joke',
'cat_mud': 'you never know',
'dog': 'canine',
'dolphin_0_tiger_0_bird': 'blue jay',
'dolphin_0_tiger_1_fish': 'dolphin',
'dolphin_1_cat2': 'feline',
'dolphin_2_dog2': 'canine'
}
Development setup
This project uses Poetry for dependecy resolution. It's a kind of mix between pip and virtualenv. Follow the next instructions to setup the development enviroment.
$ pip install poetry
$ git clone https://github.com/dany2691/activejson.git
$ cd activejson
$ poetry install
To run the test-suite, inside the pybundler directory:
$ poetry run pytest test/ -vv
Meta
Daniel Omar Vergara Pérez – @__danvergara __ – daniel.omar.vergara@gmail.com -- github.com/danvergara
Valery Briz - @valerybriz -- github.com/valerybriz
Contributing
- Fork it (https://github.com/BentoBox-Project/activejson)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
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
Built Distribution
File details
Details for the file activejson-0.4.0.tar.gz
.
File metadata
- Download URL: activejson-0.4.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1035-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9c04393c5e4d219e4a6c730a51e134933022cb9d984f443c5ea753ac66c815e |
|
MD5 | cedded496df0118cc1754219df23167f |
|
BLAKE2b-256 | 676ebf55cbfdfb313e766e2d50c78978ce9e371f649bc10b48f87963ef9158f3 |
File details
Details for the file activejson-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: activejson-0.4.0-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.2 Linux/5.0.0-1035-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86b91df5279e15f3b6e41c878b4d14f60d8dd3a43348eb08f7695969ef36698c |
|
MD5 | c07f27a7098c91d820692a729791a667 |
|
BLAKE2b-256 | 1849512b5df9ca210b9c1bc40473bebdfa2befd96401b38323577f5128532d4b |