A package for easy json validation.
Project description
Easy JSON Validator
Description
A python package for deep json validation easy to use and well explained
Install
pip install easy-validator
Usage example
Success Case
from easyvalidator import JsonValidator
source = {"name": "My Name", "birth": "2000-01-01", "salary": 1000} # your json
template = {"name": ["NotNull"]} # what you want to test
validator = JsonValidator(template=template, source=source)
result = validator.validate()
print(f"result: {result}")
# result: {'name': {'value': "My Name", 'rules': ['NotNull'], 'validations': {'NotNull': {'status': 'OK'}}}}
Fail Case
from easyvalidator import JsonValidator
source = {"name": null, "birth": "2000-01-01", "salary": 1000} # your json
template = {"name": ["NotNull"]} # what you want to test
validator = JsonValidator(template=template, source=source)
result = validator.validate()
print(f"result: {result}")
# result: {'name': {'value': "My Name", 'rules': ['NotNull'], 'validations': {'NotNull': {'status': 'FAIL', 'msg': 'Field can not be null'}}}}
More Complex Case with deep field validation
from easyvalidator import JsonValidator
source = {"name": "My Name", "birth": "2000-01-01", "salary": 1000, "address": {"details": "number": 13}} # your json
template = {"address": {"details": "number": ["GreaterThan(value=12)", "IsBetween(start=10, end=20)"]}} # what you want to test
validator = JsonValidator(template=template, source=source)
result = validator.validate()
print(f"result: {result}")
# result: {"address": {"details": "number": {'value': 13, 'rules': ['GreaterThan(value=12)', 'IsBetween(start=10, end=20)'], 'validations': {'GreaterThan(value=12)': {'status': 'OK'}, IsBetween(start=10, end=20)': {'status': 'OK'}}}}
Available Rules
NotNull
NotEmpty
IsEmpty
NotEquals(value=VALUE)
IsBetween(start=NUMERICAL VALUE, end=NUMERICAL VALUE)
IsNotBetween(start=NUMERICAL VALUE, end=NUMERICAL VALUE)
DateIsAfter(date=YYYY-mm-dd)
DateIsBefore(date=YYYY-mm-dd)
DateIsExactly(date=YYYY-mm-dd)
GreaterThan(value=NUMERICAL VALUE)
LessThan(value=NUMERICAL VALUE)
LessThanOrEqual(value=NUMERICAL VALUE)
GreaterThanOrEqual(value=NUMERICAL VALUE)
TextEquals(value=VALUE)
TextContains(value=VALUE)
TextNotContains(value=VALUE)
TextStartsWith(value=VALUE)
TextEndsWith(value=VALUE)
Source Code
Author
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
Hashes for easy_validator-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e7f9f5470a2f1263d9341f80a63e6f3699358b97275f8d1f7cce780dae832636 |
|
MD5 | 167c45d36e59aaaa05a7472bea362f3f |
|
BLAKE2b-256 | cae2616bb04eb36a651cf98b8c740f5652cd1ec160cca8ccb0eb5dff6fc4c94f |