2. Data som objekter
Data som objekter
Section titled “Data som objekter”Innhenting av data
Section titled “Innhenting av data”Stortinget har en tjeneste for åpne data (data.stortinget.no), denne kan vi bruke for å hente informasjon om hva som skjer på stortinget. I første omgang skal vi bruke listen med representanter: https://data.stortinget.no/eksport/dagensrepresentanter?format=json.
Medlemmene i regjeringen - statsråder og statsministeren - er ikke representanter på stortinget. De må lastes inn fra en annen fil som du finnner her: regjering.json
import json # øverst i python-fila
with open("representanter.json", "r", encoding="utf-8") as fil: data = json.load(fil)politikere_data = data["dagensrepresentanter_liste"]Politiker-klassen
Section titled “Politiker-klassen”
En politiker-ordbok i JSON-fila
{ "respons_dato_tid": "/Date(1707725577041+0100)/", "versjon": "1.6", "doedsdato": null, "etternavn": "Melby", "foedselsdato": "/Date(350002800000+0100)/", "fornavn": "Guri", "id": "GME", "kjoenn": 1, "fylke": { "respons_dato_tid": "/Date(1707696634734+0100)/", "versjon": "1.6", "historisk_fylke": false, "id": "Os", "navn": "Oslo" }, "parti": { "respons_dato_tid": "/Date(1707696634688+0100)/", "versjon": "1.6", "id": "V", "navn": "Venstre", "representert_parti": true }, "vara_representant": false, "epost": "Guri.Melby@stortinget.no", "fast_vara": null, "fast_vara_for": null, "komiteer_liste": [ { "respons_dato_tid": "/Date(1707724364244+0100)/", "versjon": "1.6", "id": "UFK", "navn": "Utenriks- og forsvarskomiteen" } ], "vara": null, "vara_for": null}class Politiker: def __init__(self, politiker_ordbok: dict) -> None: self.fornavn: str = politiker_ordbok["fornavn"] self.etternavn: str = politiker_ordbok["etternavn"] self.kjønn: str = "kvinne" if politiker_ordbok["kjoenn"] == 1 else "mann" self.fylke: str = politiker_ordbok["fylke"]["navn"] self.parti: str = politiker_ordbok["parti"]["navn"] self.komiteer = [komite["navn"] for komite in politiker_ordbok["komiteer_liste"]] self.ukepoeng: list[int] = [] self.verdi: int = 1000
def __str__(self) -> str: return f"{self.etternavn}, {self.etternavn} ({self.parti})"
def gi_ukepoeng(self, poeng: int) -> None: self.ukepoeng.append(poeng)Opprette politikere
Section titled “Opprette politikere”from politiker import Politiker # øverst i python-fila
politikere = []
for politiker_ordbok in politikere_data: ny_politiker = Politiker(politiker_ordbok) politikere.append(ny_politiker)