Skip to main content

New Page

"""
Praktijkleren Examenopdracht – Python
Onderwerp: Kentekencheck automatiseren
Auteur: <jouw naam>
Datum: <datum>


Dit script automatiseert het opzoeken van voertuiggegevens
op basis van een kenteken via RDW Open Data.
"""


import requests



def vraag_kenteken():
    """
    Vraagt maximaal 3 keer om een geldig kenteken.
    Retourneert het kenteken of None.
    """
    pogingen = 0  # variabele


    while pogingen < 3:  # lus met limiet
        kenteken = input("Voer een kenteken in (6 tekens): ")
        kenteken = kenteken.upper().replace("-", "").strip()


        if len(kenteken) == 6:  # beslissing
            return kenteken
        else:
            pogingen += 1
            print(f"Ongeldig kenteken. Poging {pogingen} van 3.")


    print("Te veel foutieve pogingen. Programma stopt.")
    return None



def haal_voertuiggegevens_op(kenteken):
    """
    Haalt voertuiggegevens op via RDW Open Data.
    """
    url = "https://opendata.rdw.nl/resource/m9d7-ebf2.json"
    params = {"kenteken": kenteken}


    try:
        response = requests.get(url, params=params, timeout=10)
        response.raise_for_status()
        return response.json()
    except requests.RequestException:
        return None



def toon_gegevens(data):
    """
    Toont voertuiggegevens op een leesbare manier.
    """
    if not data:  # beslissing
        print("Geen voertuiggegevens gevonden.")
        return


    voertuig = data[0]
    print("\nVoertuiggegevens:")
    print("Kenteken:", voertuig.get("kenteken"))
    print("Merk:", voertuig.get("merk"))
    print("Type:", voertuig.get("handelsbenaming"))
    print("Voertuigsoort:", voertuig.get("voertuigsoort"))
    print("Eerste toelating:", voertuig.get("datum_eerste_toelating"))



def main():
    """
    Hoofdprogramma
    """
    doorgaan = True  # variabele


    while doorgaan:  # lus
        kenteken = vraag_kenteken()
        if kenteken is None:
            break  # stoppen bij te veel fouten


        gegevens = haal_voertuiggegevens_op(kenteken)
        toon_gegevens(gegevens)


        keuze = input("\nNog een kenteken controleren? (j/n): ")
        if keuze.lower() != "j":  # beslissing
            doorgaan = False


    print("Programma afgesloten.")



main()