Lekcja 13 - Nikola Horn

Lekcja 13 - Nikola Horn
Photo by Bonnie Kittle / Unsplash

Pogoda (temperatura w Kiełczówku z użyciem API Open Meteo)

import requests
import pandas as pd
import streamlit as st

parametry = {"latitude": 51.1191, "longitude": 17.1877, "current": "temperature_2m",
  "timezone": "Europe/Berlin"}

odpowiedz = requests.get("https://api.open-meteo.com/v1/forecast", params=parametry)

odczytana = odpowiedz.json()

df = pd.DataFrame(odpowiedz.json())
df2 = pd.json_normalize(odczytana)

st.write(f"Temperatura: {odczytana["current"]}")

print(df)

st.dataframe(df2)

Waluty (10zł na SGD)

import requests

parametry = {"amount": 10, "from": "PLN", "to": "SGD"}

odpowiedz = requests.get("https://api.frankfurter.app/latest", params=parametry)
odczytana = odpowiedz.json()

print(odczytana)

Notatki z zajęć

Streamlit Pydantic - do pracy z danymi (auto-generuje elementy UI)

API

GitHub - public-apis/public-apis: A collective list of free APIs
A collective list of free APIs. Contribute to public-apis/public-apis development by creating an account on GitHub.

API - Application Programming Interface - skodyfikowany, ustalony sposób komunikacji między dwiema lub więcej aplikacjami

REST API - zestaw luźnych/ogólnych wytycznych jak konstruować API. Nie ustala w jakim formacie będą dostarczane dane (chociaż najczęściej jest to JSON). Aplikacje spełniające wymogi REST nazywane są RESTful.

Do testowania API można użyć odpowiedniej aplikacji, np. Hoppscotch:

Hoppscotch • Open source API development ecosystem
Helps you create requests faster, saving precious time on development.

Niektóre API mogą wymagać dodatkowego uwierzytelnienia!

Pandas - normalizacja

pd.json_normalize(nazwa_zmiennej)

normalize() "normalizuje" JSONa, np. jak ma zagnieżdżony słownik to rozbije go na kolumny. Czym prostsza struktura tym lepiej zadziała.