Open In App

Saving API Result Into JSON File in Python

As Python continues to be a prominent language for web development and data processing, working with APIs and storing the obtained data in a structured format like JSON is a common requirement. In this article, we will see how we can save the API result into a JSON file in Python.

Saving API Result into JSON File in Python

Below is the step-by-step procedure by which we can save the API result into a JSON file in Python:



Step 1: Installation

Here, we will install the following libraries and modules before starting with the program:

  1. Install Python
  2. Install FastAPIis
  3. FastAPI Uvicorn

Step 2: Project Structure

Below is the project structure for this program.



Step 3: Create a Virtual Environment

In this step, we will create a virtual environment by using the following command.

python3 -m venv venv

Now, as environment is created then we have to activate the environment by using the following command.

venv\Scripts\activate

Now run a command to create and automatically write down dependencies in requirements.txt

pip freeze > requirements.txt 

Step 4: Writing the FastAPI Python Code (main.py)

In this code, a FastAPI application is created with a single endpoint (“/Hello-world”). When a GET request is made to this endpoint, the hello function is executed, returning a JSON response containing a greeting message and details about the author, including name, email, and associated tags.

main.py




from fastapi import FastAPI
import json
 
app = FastAPI()
 
@app.get("/Hello-world")
def hello():
    data = {
        "message": "Hello, world!",
        "details": {
            "author": {
                "name": "Tushar",
                "email": "tushar@example.com"
            },
            "tags": ["fastapi", "python", "web"]
        }
    }
 
    return data

Step 5: Writing the script.py File

In this code, a GET request is made to a FastAPI endpoint (“http://localhost:8000/Hello-world“) using the requests library. If the request is successful (status code 200), the obtained JSON data is appended to an existing JSON file (“data.json”) after loading its current content. If the file doesn’t exist or is empty, a new list is created, and the new data is added. The final JSON content is then written back to the file, ensuring that the data retrieved from the API is persistently stored for future use.

script.py




import requests
import json
 
 
response = requests.get(api_url)
 
if response.status_code == 200:
    new_data = response.json()
 
    try:
        with open("data.json", "r") as json_file:
            existing_data = json.load(json_file)
    except (FileNotFoundError, json.decoder.JSONDecodeError):
        existing_data = []
 
    existing_data.append(new_data)
 
    with open("data.json", "w") as json_file:
        json.dump(existing_data, json_file, indent=4)
        print("Data appended to data.json file.")
else:
    print("Failed to retrieve data from the API. Status code:", response.status_code)

Step 6: Run the Program

We will run the following command in the terminal to run the program.

uvicorn main:app --reload

After running server you will see this in terminal:

FastAPI by default run at localhost:8000 you have to type url localhost:8000/Hello-world and enter it to see the result of api in browser. Now we have to run script.py, it will make call to the api url localhost:8000/Hello-world and once it will get data it is going to store it in the data.json file in the form of array of json objects.

Run the following command in the terminal:

python3 script.py

Output:

(data.json)


Article Tags :