A simple, lightweight, and file-based JSON database library for Python.
Project description
JsonDB-Python
jsondb-python
A simple, lightweight, and file-based JSON database library for Python, now with proper error handling, a modular structure, and a powerful interactive REPL.
Overview
jsondb-python provides two ways to manage your data:
- As a Python Library: A simple interface for storing and retrieving data in a JSON file. It's perfect for small projects where a full-fledged database is overkill.
- As an Interactive REPL: A feature-rich command-line interface (CLI) to manage your databases directly from the terminal, no scripting required.
Installation
pip install jsondb-python
For the best REPL experience with auto-completion and history, it is recommended to install prompt_toolkit:
pip install prompt-toolkit
Usage
As a Python Library (Quick Start)
from jsondb import JsonDB
# Initialize the database
db = JsonDB('my_database.json')
try:
# Create a table
db.create_table('users')
# Insert data
db.insert_data('users', {'id': 1, 'name': 'Alice', 'role': 'admin'})
db.insert_data('users', {'id': 2, 'name': 'Bob', 'role': 'user'})
# Update data where role is 'user'
db.update_data(
'users',
condition=lambda user: user.get('role') == 'user',
new_data={'id': 2, 'name': 'Bob', 'role': 'member'}
)
# Delete data where id is 1
db.delete_data('users', condition=lambda user: user.get('id') == 1)
# Show final data
db.show_data('users')
except db.TableExistsError as e:
print(f"Setup failed because a table already exists: {e}")
except db.Error as e: # Catch any library-specific error
print(f"An error occurred with the database: {e}")
except Exception as e:
print(f"A general error occurred: {e}")
Interactive REPL (CLI)
The library includes a powerful interactive REPL (Read-Eval-Print Loop) to manage your databases from the command line.
Launching the REPL:
# Start the REPL in the main menu
jsondb
# Or open a database file directly
jsondb ./path/to/your/database.json
Key Features:
- Interactive Management: Create, edit, and manage your JSON databases without writing Python code.
- Smart Auto-Completion: Press
Tabto get suggestions for commands, file paths, and table names. - Command History: Use the Up/Down arrow keys to navigate your command history.
- User-Friendly Interface: A colorized and structured interface makes database management easy.
- Built-in Help: Type
.helpin any mode to see a list of available commands. - Safe Operations: Features auto-saving on exit and automatic backup creation to prevent data loss.
Example Session:
$ jsondb
🌟 JsonDB >>> .build
📁 Enter database path (example: data/mydb.json): users.json
✅ Database 'users.json' created/opened successfully!
💡 Use '.create <table_name>' to create a new table
📦 [users.json] >>> .create people
✅ Table 'people' created successfully!
📦 [users.json] >>> .use people
✅ Successfully selected table 'people'!
💡 Use '.insert' to add data
📋 [people] >>> .insert
# ... interactive prompt to add data ...
✅ Data added successfully!
📋 [people] >>> .show
# ... displays table data ...
📋 [people] >>> .exit
💾 Performing auto-save before exiting...
👋 Thank you for using JsonDB REPL!
💾 Your data has been safely saved
License
This project is licensed under the MIT License. See the LICENSE file for details.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jsondb_python-1.0.6.tar.gz.
File metadata
- Download URL: jsondb_python-1.0.6.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de98b32927c0155cd2c80a1cda9bd029381a55a562ef2602f516ecde814b4e88
|
|
| MD5 |
9a511231f044a7b3f22c4032e4f09e94
|
|
| BLAKE2b-256 |
67d6215b15c0d06a3743f438c594cc38985b81a328b998a8bbb32a83f040696d
|
File details
Details for the file jsondb_python-1.0.6-py3-none-any.whl.
File metadata
- Download URL: jsondb_python-1.0.6-py3-none-any.whl
- Upload date:
- Size: 20.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2989b2608648d48894fac920ae31cfc4fbed0d7d0c18781fd835d2435153d5ef
|
|
| MD5 |
3ce3a8755c16d574e122dd8f4879c8af
|
|
| BLAKE2b-256 |
8cfdc71cba0b42b2b2666dd434064c9770f566b48356da2a774e53647709316a
|