Lekcja 13 - Nikola Horn
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.