Skip to main content

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

easyvalidator

Author

2020 brworkit.

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

easy-validator-0.0.1.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

easy_validator-0.0.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file easy-validator-0.0.1.tar.gz.

File metadata

  • Download URL: easy-validator-0.0.1.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.3

File hashes

Hashes for easy-validator-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b07384fa52b80304724d89ca36357972e53fe5fe0552ed9e77f6c69945a50c3f
MD5 37ee18a52ee064d8310c6bc19420543f
BLAKE2b-256 f57498057bed3a87762e543c29c9c72f31d3b4d18e18766e297f1a11a860a69d

See more details on using hashes here.

File details

Details for the file easy_validator-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: easy_validator-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.3

File hashes

Hashes for easy_validator-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e7f9f5470a2f1263d9341f80a63e6f3699358b97275f8d1f7cce780dae832636
MD5 167c45d36e59aaaa05a7472bea362f3f
BLAKE2b-256 cae2616bb04eb36a651cf98b8c740f5652cd1ec160cca8ccb0eb5dff6fc4c94f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page