Ontwerp een Python Script voor API Integratie en Data Extractie
description
Met deze prompt kan de gebruiker een Python script ontwikkelen dat externe API's gebruikt om dynamische data op te halen en te verwerken, wat handig is voor data-analyse, automatisering of integratie tussen systemen. De uitleg over authenticatie en foutafhandeling maakt het script robuuster en praktischer dan simpele codevoorbeelden.
prompt
Help me met het schrijven van een Python script dat verbinding maakt met de API van <voer de naam of URL van de API in> om gege ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een stapsgewijze uitleg en een voorbeeld Python-script dat verbinding maakt met de OpenWeatherMap API om het weer voor Amsterdam op te halen en te verwerken.
**Stap 1: Authenticatie**
- De API vereist een API-sleutel (`appid`) die je krijgt wanneer je je registreert op [OpenWeatherMap](https://openweathermap.org/).
- Je vervangt `your_api_key` door je eigen API-sleutel.
**Stap 2: Verzoeken maken**
- We gebruiken de `requests` bibliotheek om HTTP-verzoeken te doen.
- Het request is een GET-verzoek naar de API-URL, met als parameters de locatie (`q=Amsterdam`) en je API-sleutel (`appid=...`).
**Stap 3: Ontvangen en verwerken van data**
- De API geeft gegevens terug in JSON-formaat.
- We parseren deze JSON-data om relevante informatie zoals temperatuur, weersomstandigheden, enz. te extraheren.
Hier is een voorbeeld Python-script:
```python
import requests
# Vervang 'jouw_api_sleutel' door jouw eigen API-sleutel
API_KEY = 'jouw_api_sleutel'
# URL van de API met parameters
url = 'https://api.openweathermap.org/data/2.5/weather'
# Parameters voor het API-verzoek
params = {
'q': 'Amsterdam', # Plaatsnaam
'appid': API_KEY, # API-sleutel
'units': 'metric', # Temperatuur in Celsius
'lang': 'nl' # Resultaten in het Nederlands
}
try:
# Verzoek naar de API
response = requests.get(url, params=params)
# Controleren of het verzoek succesvol was
response.raise_for_status()
# JSON-gegevens ophalen
data = response.json()
# Uitlezen van relevante gegevens
temperatuur = data['main']['temp']
weer_beschrijving = data['weather'][0]['description']
windsnelheid = data['wind']['speed']
locatie = data['name']
# Resultaat tonen
print(f"Het weer in {locatie}:")
print(f"Temperatuur: {temperatuur}°C")
print(f"Weersomstandigheden: {weers_beschrijving}")
print(f"Windsnelheid: {windsnelheid} m/s")
except requests.exceptions.HTTPError as err:
print(f"HTTP fout: {err}")
except requests.exceptions.RequestException as err:
print(f"Verzoek fout: {err}")
except KeyError as err:
print(f"Ontvangen gegevens ontbreken: {err}")
```
**Uitleg:**
- `requests.get()` doet het GET-verzoek naar de API met de juiste parameters.
- `response.raise_for_status()` zorgt dat er een fout wordt weergegeven als het verzoek niet succesvol is.
- `response.json()` zet de JSON-gegevens om in een Python-dictionary.
- Vervolgens halen we de relevante gegevens uit de dictionary.
- Met `try-except` blokken vangen we mogelijke fouten af, zoals HTTP-fouten of ontbrekende data.
**Opmerking:**
- Vergeet niet je eigen API-sleutel in te vullen bij `API_KEY`.
- Dit script geeft basisinformatie weer; je kunt het uitbreiden met meer gegevens of functionaliteiten naar wens.
provider: deepseek
model: deepseek-chat
Zeker, ik help je met een Python script om weergegevens op te halen van OpenWeatherMap. Hier is een complete uitleg:
## Benodigde voorbereiding
1. **API Key aanvragen**: Registreer op [OpenWeatherMap](https://openweathermap.org/api) voor een gratis API key
2. **Installatie**: `pip install requests`
## Python Script
```python
import requests
import json
def haal_weer_gegevens_op(stad, api_key):
"""
Haalt weergegevens op van OpenWeatherMap API
Args:
stad (str): Naam van de stad
api_key (str): Jouw OpenWeatherMap API key
Returns:
dict: Weergegevens of None bij fout
"""
# Basis URL voor de API
base_url = "https://api.openweathermap.org/data/2.5/weather"
# Parameters voor het verzoek
params = {
'q': stad,
'appid': api_key,
'units': 'metric', # Metrische eenheden (Celsius)
'lang': 'nl' # Nederlandse taal
}
try:
# Verstuur GET verzoek
response = requests.get(base_url, params=params)
# Controleer of verzoek succesvol was (status code 200)
if response.status_code == 200:
# Parse JSON response
data = response.json()
return data
else:
print(f"Fout: {response.status_code} - {response.text}")
return None
except requests.exceptions.RequestException as e:
print(f"Netwerkfout: {e}")
return None
except json.JSONDecodeError as e:
print(f"JSON parse fout: {e}")
return None
def verwerk_weer_gegevens(weer_data):
"""
Verwerkt en toont de weergegevens
Args:
weer_data (dict): Weergegevens van de API
"""
if not weer_data:
print("Geen gegevens om te verwerken")
return
try:
# Extraheer belangrijke informatie
stad = weer_data['name']
land = weer_data['sys']['country']
temperatuur = weer_data['main']['temp']
gevoelstemperatuur = weer_data['main']['feels_like']
luchtvochtigheid = weer_data['main']['humidity']
beschrijving = weer_data['weather'][0]['description']
windsnelheid = weer_data['wind']['speed']
# Toon de gegevens
print(f"\n=== Weergegevens voor {stad}, {land} ===")
print(f"Temperatuur: {temperatuur}°C")
print(f"Gevoelstemperatuur: {gevoelstemperatuur}°C")
print(f"Weersomstandigheden: {beschrijving.capitalize()}")
print(f"Luchtvochtigheid: {luchtvochtigheid}%")
print(f"Windsnelheid: {windsnelheid} m/s")
except KeyError as e:
print(f"Ontbrekende gegevens in API response: {e}")
# Hoofdprogramma
if __name__ == "__main__":
# Vervang met jouw eigen API key
API_KEY = "jouw_api_key_hier"
STAD = "Amsterdam"
# Haal gegevens op
weer_data = haal_weer_gegevens_op(STAD, API_KEY)
# Verwerk en toon gegevens
if weer_data:
verwerk_weer_gegevens(weer_data)
# Optioneel: Bewaar gegevens in JSON bestand
with open('weer_gegevens.json', 'w') as f:
json.dump(weer_data, f, indent=2)
print("\nGegevens opgeslagen in 'weer_gegevens.json'")
```
## Belangrijke punten:
### 1. **Authenticatie**
- Gebruik je persoonlijke API key in de `appid` parameter
- Bewaar API keys nooit in versiebeheer (gebruik environment variables)
### 2. **Verzoeken**
- `requests.get()` voor HTTP GET verzoek
- Parameters worden meegegeven als dictionary
- Foutafhandeling met try-except blokken
### 3. **Data Verwerking**
- JSON response wordt geparsed naar Python dictionary
- Gegevens worden geëxtraheerd met dictionary keys
- Foutafhandeling voor ontbrekende velden
### 4. **Verbeterde versie met environment variables**
```python
import os
from dotenv import load_dotenv
# Laad environment variables
load_dotenv()
API_KEY = os.getenv('OPENWEATHER_API_KEY')
```
Zoek eerst een gratis API key aan en vervang `"jouw_api_key_hier"` met je eigen key!