Sai A Sai A
Updated date Nov 02, 2023
In this blog, we will learn how to convert JSON data into HTML using Python with easy-to-follow methods and example code.

Introduction:

JSON (JavaScript Object Notation) is a popular data interchange format that is easy for both humans and machines to read and write. It's commonly used to represent structured data, making it an essential tool for data exchange between applications. However, there are instances when you need to display JSON data in a more user-friendly way, such as in a web application or report. That's where converting JSON to HTML comes into play. In this blog, we will explore different methods to convert JSON data to HTML using Python

Method 1: Using a Template Engine (Jinja2)

The first method to convert JSON to HTML is by using a template engine like Jinja2. Jinja2 allows you to define an HTML template with placeholders that can be filled with data from your JSON.

Here's a Python program that demonstrates this approach:

from jinja2 import Template

# Sample JSON data
json_data = {
    "name": "John Doe",
    "email": "[email protected]",
    "age": 30,
}

# HTML template
template_str = """
<!DOCTYPE html>
<html>
<head>
    <title>User Information</title>
</head>
<body>
    <h1>User Information</h1>
    <ul>
        <li>Name: {{ data.name }}</li>
        <li>Email: {{ data.email }}</li>
        <li>Age: {{ data.age }}</li>
    </ul>
</body>
</html>
"""

# Create a Jinja2 template
template = Template(template_str)

# Render the template with JSON data
html_output = template.render(data=json_data)

# Print the HTML output
print(html_output)

Output:

<!DOCTYPE html>
<html>
<head>
    <title>User Information</title>
</head>
<body>
    <h1>User Information</h1>
    <ul>
        <li>Name: John Doe</li>
        <li>Email: [email protected]</li>
        <li>Age: 30</li>
    </ul>
</body>
</html>
  • We import the Template class from Jinja2 and define a sample JSON object.
  • An HTML template is created with placeholders (e.g., {{ data.name }}) for JSON data fields.
  • We create a Jinja2 template using the template string and render it by passing the JSON data as a dictionary.
  • The rendered HTML output is displayed, replacing the placeholders with actual JSON data.

Method 2: Using the json and HTML Libraries

Another way to convert JSON to HTML is by using Python's built-in json library to parse the JSON data and then constructing HTML elements using the HTML library. This approach is suitable for cases where you need more control over the HTML structure.

Here's a program that demonstrates this method:

import json
from html import HTML

# Sample JSON data
json_data = {
    "name": "Jane Smith",
    "email": "[email protected]",
    "age": 25,
}

# Create an HTML document
html_doc = HTML()
head = html_doc.head()
head.title("User Information")
body = html_doc.body()
body.h1("User Information")
user_info = body.ul()
user_info.li(f"Name: {json_data['name']}")
user_info.li(f"Email: {json_data['email']}")
user_info.li(f"Age: {json_data['age']}")

# Print the HTML document
print(html_doc)

Output:

<!DOCTYPE html>
<html>
<head>
    <title>User Information</title>
</head>
<body>
    <h1>User Information</h1>
    <ul>
        <li>Name: Jane Smith</li>
        <li>Email: [email protected]</li>
        <li>Age: 25</li>
    </ul>
</body>
</html>
  • We import the necessary libraries: json for JSON processing and HTML from the html library for creating HTML elements.
  • A sample JSON object is defined.
  • An HTML document is created step by step, including the <head> and <body> sections, along with the necessary HTML elements.
  • JSON data is inserted into the HTML elements using f-strings.
  • The final HTML document is printed.

Conclusion:

Converting JSON to HTML is a valuable skill for web developers, data analysts, and anyone working with structured data. In this blog, we have explored multiple methods to achieve this task using Python. Method 1 showed how to use Jinja2, a template engine that allows you to define HTML templates with placeholders for JSON data. This method is suitable when you want to keep your HTML structure separate from the data. Method 2 demonstrated using Python's json and HTML libraries to parse JSON data and construct HTML elements programmatically. This method provides more control over the HTML structure.

Comments (0)

There are no comments. Be the first to comment!!!