Skip to main content

Json schema Model

Project description

Build status Downloads Latest Version License

Build python objects using JSON schemas:

>>> import jsonschema_model
>>> Model = jsonschema_model.model_factory({
...    "name": "Model",
...    "properties": {
...        "foo": {"type": "string"},
...        "bar": {"type": "array", "items": {
...            "type": "object",
...            "name": "Bar",
...            "properties": {
...                "zaz": {"type": "string"},
...            },
...        }},
...    }})

# Simple object creation
>>> obj = Model(foo="bar")
>>> assert obj == {"foo": "bar"}

# Nested and array are implemented
# HINT: Use add() instead of append()
>>> obj.bar.add(zaz="qux")
{'zaz': 'qux'}
>>> assert obj == {'foo': 'bar', 'bar': [{'zaz': 'qux'}]}

# You can access via attribute or via dict like interface
>>> obj["bar"][0].zaz
'qux'

# Array have a special get_or_create() method
# to avoid dupplicates within an array
>>> obj.bar.get_or_create(zaz="xuq")
{'zaz': 'xuq'}
>>> obj.bar
[{'zaz': 'qux'}, {'zaz': 'xuq'}]
>>> obj.bar.get_or_create(zaz="xuq")
{'zaz': 'xuq'}
>>> obj.bar
[{'zaz': 'qux'}, {'zaz': 'xuq'}]

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

jsonschema-model-1.4.0.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

jsonschema_model-1.4.0-py2.py3-none-any.whl (4.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file jsonschema-model-1.4.0.tar.gz.

File metadata

File hashes

Hashes for jsonschema-model-1.4.0.tar.gz
Algorithm Hash digest
SHA256 9d753f6899d535c0e6db74865c11d59ec57af5f969e83120f38d94efebdcc832
MD5 86ee6250b0ad46ff90864e8606f1f267
BLAKE2b-256 fc63e785630ef276ffacb4f9ecde7c9fdccf2e3843cf61b6caa72ae07583a92e

See more details on using hashes here.

File details

Details for the file jsonschema_model-1.4.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for jsonschema_model-1.4.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 59051eba59268ba0c1eaf1acb69d1bf84240b42b3d7b46189dd7a483b1b1458b
MD5 28d53885f00528bdfb5e5142472202c3
BLAKE2b-256 02c30b3fdfbe8228256b41674d132cdf46a886bb7b6bbe24fb14da3a2440275e

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