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:
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
api_url = "http://localhost:8000/Hello-world"
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)