semvec/pypi-packages huggingface dataset:
jsonstore 1.3.1
JSONStore is a lightweight database for JSON documents exposed through HTTP.
License: MIT

A schema-free database for JSON documents, exposed through a REST API, with searching implemented using a flexible matching algorithm.

A quick start:

.. code-block:: bash

    $ pip install jsonstore
    $ jsonstore
     * Running on http://127.0.0.1:31415/

Creating a document:

.. code-block:: bash

    $ curl -v http://127.0.0.1:31415/ -d '{"foo":"bar","baz":{"count":42}}'
    < HTTP/1.0 201 Created
    < Location: http://127.0.0.1:31415/72dcf1ee-8efd-4d7f-8ca1-2eda2bf85099
    < etag: "348f16ee0c0856d853117bde8413a4270d1d3487"
    {
        "foo": "bar",
        "baz": {
            "count": 42
        },
        "__id__": "72dcf1ee-8efd-4d7f-8ca1-2eda2bf85099",
        "__updated__": "2012-05-09T20:33:36.928075+00:00"
    }

Searching the store:

.. code-block:: bash

    $ curl -g 'http://127.0.0.1:31415/{"baz":{"count":"GreaterThan(40)"}}'
    [
        {
            "foo": "bar",
            "baz": {
                "count": 42
            },
            "__id__": "72dcf1ee-8efd-4d7f-8ca1-2eda2bf85099",
            "__updated__": "2012-05-09T20:33:36.928075+00:00"
        }
    ]

It also has a Python API. The above code would be done like this:

.. code-block:: pycon

    >>> from jsonstore.client import EntryManager
    >>> from jsonstore.operators import GreaterThan

    >>> em = EntryManager('http://127.0.0.1:31415/')
    >>> em.create(foo="bar", "baz"={"count": 42})
    >>> results = em.search(baz={"count": GreaterThan(40)})

Or like this, just for fun:

.. code-block:: pycon

    >>> from jsonstore.dsl import Store

    >>> store = Store('http://127.0.0.1:31415/')
    >>> { "foo": "bar", "baz": { "count": 42 } } >> store
    >>> results = store | { "baz": { "count": GreaterThan(40) } }

Please see the website for `more examples <http://code.dealmeida.net/jsonstore>`_.