Classes for easier file usage, currently only json is implemented.
Project description
JSON File Helper
A Python class for easier JSON file handling. This utility provides a streamlined interface for reading, writing, appending, and validating JSON files, along with additional helper properties and methods.
Features
- Read JSON files with automatic file validation.
- Write JSON data (as dictionaries or lists of dictionaries) to files.
- Append data to existing JSON files, supporting both dictionaries and lists.
- Clear JSON files by resetting their content.
- Validate JSON schema using the
jsonschemalibrary. - Access properties like
keys,values,length,is_empty,size, andexists. - Pretty print JSON data for better readability.
Installation
Clone the Repository
git clone https://github.com/your-repo/json-helper.git
cd json-helper
Install Dependencies
This module uses the jsonschema library. Install the requirements using pip or a package manager like Poetry:
pip install -r requirements.txt
Or with Poetry:
poetry install
Usage
Importing the Module
If the json_lib package is properly configured with __init__.py:
from json_lib import json_file
Creating an Instance
from json_lib import json_file
# Initialize with an optional file path
jf = json_file("example.json")
Methods and Properties
1. Reading a JSON File
data = jf.read()
print(data)
2. Writing Data
jf.write({"name": "John", "age": 30})
3. Appending Data
Append a dictionary to a JSON dictionary or list:
jf.append({"city": "New York"})
4. Clearing a File
jf.clear()
5. Validating Schema
Use a JSON schema to validate the structure of your file:
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"}
},
"required": ["name", "age"]
}
is_valid = jf.validate_schema(schema)
print(f"Is valid: {is_valid}")
6. Pretty Print
jf.pretty_print()
7. Accessing Properties
print(jf.keys) # List of keys in the JSON (if it's a dictionary)
print(jf.values) # List of values
print(jf.length) # Number of items (for dicts or lists)
print(jf.is_empty) # Check if the file is empty
print(jf.size) # File size in bytes
print(jf.exists) # Check if the file exists
Using as a Context Manager
The json_file class can also be used with with statements:
with json_file("example.json") as jf:
data = jf.read()
jf.append({"new_key": "new_value"})
Requirements
- Python 3.8+
jsonschemalibrary for schema validation
Example
Here’s a complete example:
from json_lib import json_file
# Initialize with a file path
jf = json_file("example.json")
# Write data to the file
jf.write({"name": "Alice", "age": 25})
# Read the file
print(jf.read())
# Append new data
jf.append({"city": "London"})
# Validate schema
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"city": {"type": "string"}
},
"required": ["name", "age"]
}
print(jf.validate_schema(schema))
# Pretty print the file's content
jf.pretty_print()
License
This project is licensed under the MIT License. See the LICENSE file for details.
Author
TheBiemGamer (biemgamer@pm.me)
Project details
Release history Release notifications | RSS feed
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 json_file_helper-0.1.0.tar.gz.
File metadata
- Download URL: json_file_helper-0.1.0.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.1 Linux/6.12.8-2-cachyos
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b2a09e7a3f4661dc6c94aa7f17f552033316fb6d79ed36b0a66fed015254f36
|
|
| MD5 |
754772916eaf2c6c6d6d3cae8a2e06f9
|
|
| BLAKE2b-256 |
53567a64275a426b1b3704c4851c5e8aa48b86ff22588152ddeb9097846d73c7
|
File details
Details for the file json_file_helper-0.1.0-py3-none-any.whl.
File metadata
- Download URL: json_file_helper-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.1 CPython/3.13.1 Linux/6.12.8-2-cachyos
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62c978289a04935dba4f77410922632b6405dde8f8f1aec209629534fbf55914
|
|
| MD5 |
beac256d53b571a4e6ef0d6028c7a92b
|
|
| BLAKE2b-256 |
27f6978ae1a01a951250c860b2992d4587b4207b6de84e100a6cdc56445f7f5f
|