Skip to main content

Translates Django ORM query system to json objects

Project description

PyPI - Python Version PyPI

JSON Enhanced

JSON Enhanced implements fast and pythonic queries and mutations for JSON objects.

Installation

You can install json-enhanced with pip:

pip install json-enhanced

Quickstart

import jsonutils as js
from datetime import datetime

# We create a new JSONObject either directly or from a local file/URL:
json_data = js.JSONObject(
    {
        "data": [
            {
                "name": "Dan",
                "birthday": "1991-01-02 09:00:00",
                "publications": 15
            },
            {
                "name": "Mar",
                "birthday": "1991-03-02 12:30:00",
                "publications": 13
            },
            {
                "name": "Carl",
                "birthday": "1950-06-02 16:00:00",
                "publications": 36
            },
            {
                "name": "Vic",
                "birthday": "1986-07-02 16:00:00",
                "publications": None
            },
        ]
    }
)

# Now we can navegate through this object by attribute accesion:
json_data.data._1.name
# 'Mar'

# Or we can make queries. The syntax is very similar to Django's querysets:
result = json_data.query(birthday__lt=datetime(1985,1,1))

result
# <QuerySet ['1950-06-02 16:00:00']>

result.first().parent
# {'name': 'Carl', 'birthday': '1950-06-02 16:00:00', 'publications': 36}

# We can also retrieve the path of a node:
result.first().jsonpath
# data/2/

Documentation

Detailed documentation is available at json-enhanced.readthedocs.io.

Contributing

Contributions are welcome! Please take a look at our contributors guide.

Code of Conduct

Please read CODE_OF_CONDUCT.md for details on our code of conduct.

License

This project is licensed under the GPL-3.0 License. For details, please read our LICENSE FILE.

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

json-enhanced-0.1.41.tar.gz (37.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

json_enhanced-0.1.41-py3-none-any.whl (38.6 kB view details)

Uploaded Python 3

File details

Details for the file json-enhanced-0.1.41.tar.gz.

File metadata

  • Download URL: json-enhanced-0.1.41.tar.gz
  • Upload date:
  • Size: 37.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5

File hashes

Hashes for json-enhanced-0.1.41.tar.gz
Algorithm Hash digest
SHA256 8c01eeee1e30230d4b6f91acfb716028ac0f5707cddd99128cc37dbd4028ca89
MD5 9ed5defe4b2dcdbe645660b2b50ca9ca
BLAKE2b-256 52a10bb60913d2d7eb8e48f67d4d0ed6d144d0e73e4107b1983145dbff4c2556

See more details on using hashes here.

File details

Details for the file json_enhanced-0.1.41-py3-none-any.whl.

File metadata

  • Download URL: json_enhanced-0.1.41-py3-none-any.whl
  • Upload date:
  • Size: 38.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5

File hashes

Hashes for json_enhanced-0.1.41-py3-none-any.whl
Algorithm Hash digest
SHA256 d19ab1248586a03db70b1dad657e4a1688ab9a1696c0a355c3f9cd744ca394c3
MD5 9f52bf0cd91a65ce20e550135ca988a8
BLAKE2b-256 4881e05f3baee0bcad8c541df5dfa700684fa97b03993dafc0ea4e0491916cdd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page