Skip to main content

livejson

Build Status Coverage Status PEP8

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 dicts, with your file transparently updating in the background. It's pure-python with no dependencies, and compatible across Python 2 and Python 3.

Demo gif

livejson is:

  • Easy: use livejson with the same interface as Python lists and dicts, meaning it can basically be used as a drop-in replacement.
  • Flexible: livejson fully supports complex nestings of lists and dicts, meaning it can represent any valid JSON file.
  • Compatible: livejson works perfectly on both Python 2 and Python 3.
  • 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 complex open and close operations, or learning how to use the json module.
  • Debugging: You can use livejson to back up your Python objects. If you use a livejson.Database instead of a dict or a list 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.

Installing

livejson supports both Python 2 and 3, and can be easily installed with pip.

# Python 2
sudo pip install livejson
# Python 3
sudo pip3 install livejson

After installing, you can just import livejson from your code!

Example usage

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"

Metadata

Release files for livejson 1.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for livejson 1.9.1
File Size Uploaded
livejson-1.9.1.tar.gz 6.2 kB Details

Release files / livejson-1.9.1.tar.gz

Download URL livejson-1.9.1.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7d08c4a2c607fe0e089f8ba38946e060af6dd617d3d984ec8a3495f29ab370e1
BLAKE2b-256 checksum
How to use checksums
91ed4d7ac8e97fba75ae0b26c32e511a7ea909f85174520a954678fbd6a9df37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.7.4

Release history Release notifications | RSS feed

This release

1.9.1 This release

1 release file

1.9.0

1 release file

1.8.1

2 release files

1.8.0

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page