Table of Contents¶
Validating JSON Data with Python and JSON Schema¶
Introduction¶
This is a short tutorial on how to use Python to validate JSON file data. Rather than iterating through all the fields in the JSON, usage of libraries like JSONschema etc. are considered more efficient. Hence, I thought of sharing my experience.
Prerequisites¶
-
Python Installation: Ensure Python is installed on your system. If not, download and install it from the official Python website.
-
JSON Files:
- Weather Data File (
weather.json
): A JSON file containing weather data, typically obtained from weather APIs e.g. weatherapi. -
JSON Schema File (
weather_schema.json
): A JSON schema file that defines the expected structure, required fields, and data types of the weather data JSON. Tools like Quicktype or JSON Schema Tool can help generate a schema from a JSON example. -
jsonschema
Library: This Python library is used for validating JSON data against a schema.
Install it using pip: pip install jsonschema
How to Run the Script¶
-
Prepare Your JSON Files: Ensure your
weather.json
andweather_schema.json
are placed in the same directory as your script. -
Run the Script: Open Visual Studio Code, create a Python file or a Jupyter notebook
-
And copy-paste the code below. Adjust as needed.
Run and debug using the editor.import json from jsonschema import validate, ValidationError # Load the JSON data and schema with open('weather.json', 'r') as file: weather_data = json.load(file) with open('weather_schema.json', 'r') as file: schema = json.load(file) # Function to validate JSON def is_valid_json(data, schema): try: validate(instance=data, schema=schema) return True except ValidationError as ve: print(f"Validation error: {ve}") return False # Validate the weather data if is_valid_json(weather_data, schema): print("Validation Successful!") else: print("Validation Failed!")
Code Overview¶
The script consists of the following components:
-
Loading JSON Data and Schema: We use Python's built-in
json
module to load the weather data and the schema from their respective files. -
Validation Logic: Utilizing the
jsonschema.validate()
function, we check if the JSON data adheres to the schema, capturing any validation errors that might indicate discrepancies. -
Error Handling: The script identifies and prints specific validation errors, making it easier to pinpoint issues in the data or the schema.
Conclusion¶
This code can be further enhanced to be included in an Azure Function. For example, if you are fetching data as JSON format from a web API, this code can be added there to perform data validation.
© D Das
📧 das.d@hotmail.com | ddasdocs@gmail.com