Skip to main content

A lightweight local JSON database

Project description

JSONLite

JSONLite is a lightweight, local JSON database for simple data storage.

  • Like SQLite, it's a local database
  • It's API is 100% modeled after MongoDB, making it easy to migrate between MongoDB and JSONLite

Installation

pip install jsonlite

Data Layout

{
    "data": [
        {   "_id": 1,
            "name": "Alice",
            "age": 30
        },
        {   "_id": 2,
            "name": "Bob",
            "age": 25
        },
        {   "_id": 3,
            "name": "Charlie",
            "age": 20
        }
    ]
}

Usage

>>> from jsonlite import JSONlite

>>> # Initialize the database
>>> db = JSONlite('mydatabase.json')

>>> # Inserting one document
>>> result = db.insert_one({"name": "John Doe", "age": 30})
>>> result.inserted_id
1

>>> # Inserting multiple documents
>>> result = db.insert_many([
...     {"name": "Jane Doe", "age": 25},
...     {"name": "Alice", "age": 28}
... ])
>>> result.inserted_ids
[2, 3]

>>> # Finding one document
>>> document = db.find_one({"name": "John Doe"})
>>> document
{'_id': 1, 'name': 'John Doe', 'age': 30}

>>> # Finding multiple documents
>>> documents = db.find({"age": {"$gte": 25}})
>>> documents
[
    {'_id': 1, 'name': 'John Doe', 'age': 30},
    {'_id': 2, 'name': 'Jane Doe', 'age': 25},
    {'_id': 3, 'name': 'Alice', 'age': 28}
]

>>> # Updating one document
>>> result = db.update_one({"name": "John Doe"}, {"$set": {"age": 31}})
>>> result.matched_count, result.modified_count
(1, 1)

>>> # Updating multiple documents
>>> result = db.update_many({"age": {"$gte": 25}}, {"$set": {"status": "active"}})
>>> result.matched_count, result.modified_count
(3, 3)

>>> # Deleting one document
>>> result = db.delete_one({"name": "John Doe"})
>>> result.deleted_count
1

>>> # Deleting multiple documents
>>> result = db.delete_many({"age": {"$lt": 30}})
>>> result.deleted_count
2

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

jsonlite-0.0.6.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

jsonlite-0.0.6-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file jsonlite-0.0.6.tar.gz.

File metadata

  • Download URL: jsonlite-0.0.6.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for jsonlite-0.0.6.tar.gz
Algorithm Hash digest
SHA256 eea658fd41c41415c0d34b24e5969b1a393a894e02ff90e9023efd6c7e437026
MD5 d7daad8c6ddd444547193d7dc89b7792
BLAKE2b-256 b4d5c0602604f687a780e4fe224689452475573cb2956a3352549d14708ceb09

See more details on using hashes here.

File details

Details for the file jsonlite-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: jsonlite-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for jsonlite-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 cad84f163c38d39f5725ef05dd84a630da68142347d8ddb442345ca3591492c8
MD5 cd8db66d95a05449e5ac22d178011974
BLAKE2b-256 2e997b2f66ae63a96a4ec86c9d164658a04686f5fa6fa4a22ef8e62b9b9aeb41

See more details on using hashes here.

Supported by

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