An interface to transparently bind Python objects to JSON files, so that all changes made to the object are reflected in the JSON file
livejson
allows you to cleanly manipulate JSON objects as though they were Python dict
s, with your file transparently updating in the background. It's pure-python with no dependencies.
livejson
is:
- Easy: use
livejson
with the same interface as Pythonlist
s anddict
s, meaning it can basically be used as a drop-in replacement. - Flexible:
livejson
fully supports complex nestings oflist
s anddict
s, meaning it can represent any valid JSON file. - Compatible:
livejson
works on all versions of Python that are not end-of-life. - Lightweight:
livejson
is a single file with no external dependencies. Just install and go! - Reliable: by default, no caching is used. Every single time you access a
livejson.Database
, it's read straight from the file. And every time you write to it, the change is instant. No delays, no conflicts. However, if efficiency is important, you can use the context manager to perform "grouped writes", which allow for performing a large number of operations with only one write at the end. - 100% test covered Be confident that
livejson
is working properly
livejson
can be used for:
- Database storage: you can use
livejson
to easily write flexible JSON databases, without having to worry about complexopen
andclose
operations, or learning how to use thejson
module. - Debugging: You can use
livejson
to “back up” your Python objects to disk. If you use alivejson.Database
instead of adict
or alist
and your script crashes, you'll still have a hard copy of your object. And you barely had to change any of your code. - General-purpose JSON: If your script or application needs to interact with JSON files in any way, consider using
livejson
, for simplicity's sake.livejson
can make your code easier to read and understand, and also save you time.
Thanks to dgelessus for naming this project.
livejson
can be easily installed with pip
.
pip install livejson
After installing, you can just import livejson
from your code!
Basic usage:
import livejson
f = livejson.File("test.json")
f["a"] = "b"
# That's it, the file has been written to!
As a context manager:
import livejson
with livejson.File("test.json") as f:
f["a"] = "b"