Search code examples
pythonjsonpython-3.xvalidation

Validate JSON data using python


I need to create a function that validates incoming json data and returns a python dict. It should check if all necessary fields are present in a json file and also validate the data types of those fields. I need to use try-catch. Could you provide some kind of snippets or examples that give me answers?


Solution

  • If you haven't check jsonschema library, it can be useful to validate data. JSON Schema is a way to describe the content of JSON. The library just uses the format to make validations based on the given schema.

    I made a simple example from basic usage.

    import json
    from jsonschema import validate
    
    # Describe what kind of json you expect.
    schema = {
        "type" : "object",
        "properties" : {
            "description" : {"type" : "string"},
            "status" : {"type" : "boolean"},
            "value_a" : {"type" : "number"},
            "value_b" : {"type" : "number"},
        },
    }
    
    # Convert json to python object.
    my_json = json.loads('{"description": "Hello world!", "status": true, "value_a": 1, "value_b": 3.14}')
    
    # Validate will raise exception if given json is not
    # what is described in schema.
    validate(instance=my_json, schema=schema)
    
    # print for debug
    print(my_json)