api / app.py
raomyousaf's picture
Update app.py
ab9ff1e verified
import requests
import sqlite3
import pandas as pd
import matplotlib.pyplot as plt
# Fetch data from the non-SSL API (example API URL)
def fetch_data_from_api():
api_url = "http://example.com/api" # Replace with your actual non-SSL API URL
response = requests.get(api_url)
data = response.json() # Assumes the response is in JSON format
return data
# Store data in SQLite
def store_data_in_sqlite(data):
conn = sqlite3.connect('data.db')
cursor = conn.cursor()
# Create table if it does not exist
cursor.execute('''CREATE TABLE IF NOT EXISTS api_data (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
value INTEGER)''')
# Insert data into the database
for item in data:
cursor.execute("INSERT INTO api_data (name, value) VALUES (?, ?)", (item['name'], item['value']))
conn.commit()
conn.close()
# Function to retrieve data for the chart
def get_data_for_chart():
conn = sqlite3.connect('data.db')
df = pd.read_sql_query("SELECT name, value FROM api_data", conn)
conn.close()
return df
# Function to plot a chart
def plot_chart(df):
plt.figure(figsize=(8,6))
plt.bar(df['name'], df['value'])
plt.xlabel('Name')
plt.ylabel('Value')
plt.title('API Data Visualization')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
if __name__ == "__main__":
# Fetch, store data and visualize
data = fetch_data_from_api()
store_data_in_sqlite(data)
df = get_data_for_chart()
plot_chart(df)