Gegeven is een CSV-bestand van volgende gedaante:

Sleutel; Data1; Data2; Data3; ... 

Deze hoofdingen zijn slechts placeholders: in de echte bestanden komen andere kolomhoofdingen voor, maar de eerste kolom van het bestand wordt steeds als sleutel geïnterpreteerd.
Het is de bedoeling om dit CSV-bestand in te lezen en om te zetten naar een woordenboek. De sleutels zijn hierbij de waarden die je in de eerste kolom vindt (je mag aannemen dat deze uniek zijn). Voor elke sleutel stockeren we de resterende gegevens van de regel opnieuw in een woordenboek. De sleutels in dit laatste woordenboek zijn de kolomhoofdingen (dus de tekst die de plaats van Data1, Data2, enz. inneemt in het CSV-bestand). De waarden zijn de stringwaarden die je op die regel en in die kolom terugvindt.

Je construeert dus eigenlijk een "woordenboek-van-woordenboeken". Indien je een waarde wil terugvinden in dit woordenboek, heb je dus twee sleutels nodig. Stel dat w het geconstrueerde woordenboek bevat, dan zal w[sleutel][data] het gegeven bevatten dat je in het originele CSV-bestand vindt op de regel met inhoud "sleutel" en op kolom "data". Deze werkwijze maakt het zeer handig om vlot met gegevens uit een CSV-bestand te werken.

Schrijf een functie lees_records() met als enig argument de naam van een in te lezen CSV-bestand. Het resultaat is een woordenboek van woordenboeken zoals hierboven gedefinieerd.

De bestanden die Dodona gebruikt in de testcases vind je in het gecomprimeerde bestand LezenVanRecords.zip1.

Voorbeeld

Inhoud 'Woordenboek_0_in.csv'
Naam;Frans;Biologie;Aardrijkskunde;Fysica;Maatschappelijke Vorming;Nederlands;Informatica;Scheikunde;Wiskunde;Wetenschappelijk Werk;Geschiedenis
Verstraete, Yannis;5,0;10,0;5,0;9,0;10,0;18,0;15,0;7,0;14,0;12,0;13,0
Paulussen, Vanya;6,0;7,0;6,0;16,0;8,0;6,0;9,0;13,0;7,0;15,0;7,0
Cornelissen, Renee;5,0;10,0;5,0;11,0;13,0;13,0;5,0;12,0;13,0;8,0;13,0
lees_records('Woordenboek_0_in.csv') = 
{'Cornelissen, Renee': {'Aardrijkskunde': '5,0', 'Maatschappelijke Vorming': '13,0', 
                        'Informatica': '5,0', 'Scheikunde': '12,0', 'Frans': '5,0', 
                        'Biologie': '10,0', 'Nederlands': '13,0', 'Geschiedenis': '13,0', 
                        'Wetenschappelijk Werk': '8,0', 'Wiskunde': '13,0', 'Fysica': '11,0'}, 
 'Paulussen, Vanya': {'Aardrijkskunde': '6,0', 'Maatschappelijke Vorming': '8,0',
                      'Informatica': '9,0', 'Scheikunde': '13,0', 'Frans': '6,0', 
                      'Biologie': '7,0', 'Nederlands': '6,0', 'Geschiedenis': '7,0', 
                      'Wetenschappelijk Werk': '15,0', 'Wiskunde': '7,0', 'Fysica': '16,0'}, 
 'Verstraete, Yannis': {'Aardrijkskunde': '5,0', 'Maatschappelijke Vorming': '10,0', 
                        'Informatica': '15,0', 'Scheikunde': '7,0', 'Frans': '5,0', 
                        'Biologie': '10,0', 'Nederlands': '18,0', 'Geschiedenis': '13,0', 
                        'Wetenschappelijk Werk': '12,0', 'Wiskunde': '14,0', 'Fysica': '9,0'}}