Autocodewizard Logo Working with APIs and JSON Data - Autocodewizard Ebooks - Python Programming Essentials: A Beginner�s Guide to Code and Data

Chapter 12: Working with APIs and JSON Data

Discover how to interact with APIs and handle JSON data, enabling your Python applications to connect with web services.

In this chapter, we�ll explore how to use Python to interact with APIs and handle JSON data. APIs (Application Programming Interfaces) allow programs to communicate with each other, while JSON (JavaScript Object Notation) is a common format used to exchange data between applications.

What is an API?

An API is a set of rules that allows software programs to communicate with each other. APIs are commonly used to access data from external services, such as weather updates, stock prices, or social media information.

Making HTTP Requests with the requests Library

The requests library is a popular Python library for making HTTP requests. Install it using pip install requests, then use it to send requests to APIs:

import requests

response = requests.get("https://api.example.com/data")
print(response.status_code)
print(response.text)

In this example, requests.get() sends a GET request to the specified URL and returns a response, which includes the status code and content.

Handling JSON Data

APIs often return data in JSON format, which is structured as key-value pairs. The requests library provides a .json() method to parse JSON data into a Python dictionary:

data = response.json()
print(data["key"])  # Access a specific value from the JSON data

In this example, response.json() converts the JSON data into a dictionary, allowing you to access specific values using keys.

Sending Data with POST Requests

To send data to an API, use a POST request. The requests.post() method allows you to include JSON data in the request body:

payload = {"name": "Alice", "age": 25}
response = requests.post("https://api.example.com/create", json=payload)
print(response.status_code)
print(response.json())

In this example, requests.post() sends a dictionary as JSON data to the API.

Working with JSON Files in Python

Python�s json module allows you to read from and write to JSON files. Here�s how to load data from a JSON file:

import json

with open("data.json", "r") as file:
    data = json.load(file)
print(data)

In this example, json.load() reads JSON data from a file and loads it into a Python dictionary.

Writing JSON Data to a File

You can also write data to a JSON file using json.dump():

data = {"name": "Alice", "age": 25}

with open("data.json", "w") as file:
    json.dump(data, file)

This code saves a Python dictionary to a JSON file.

Error Handling with API Requests

When making API requests, it�s essential to handle errors properly. Use try and except blocks to manage network issues or unexpected responses:

try:
    response = requests.get("https://api.example.com/data")
    response.raise_for_status()  # Raise an error for bad responses
    data = response.json()
except requests.exceptions.HTTPError as err:
    print(f"HTTP error: {err}")
except requests.exceptions.RequestException as err:
    print(f"Request error: {err}")

In this example, raise_for_status() raises an error for HTTP issues, allowing for error handling if the request fails.

Summary and Next Steps

In this chapter, we covered the basics of interacting with APIs and working with JSON data in Python. These skills are essential for building applications that communicate with web services. In the next chapter, we�ll dive into data analysis using libraries like Pandas and NumPy.