Du tror tall fra en CSV er tall

Handler om: Datasett som liste av ordbøker

Når en CSV inneholder «17», ser det ut som et tall. Men csv.DictReader gir ALT som strenger — også tall. «17» + 1 gir derfor en feil. Skal du regne, må du først gjøre verdien om med int(...) eller float(...).

Eksempel

Du skriver sum = sum + elev["alder"] og får TypeError, eller legger sammen strenger i stedet for tall.

Slik tenker du riktig om det

Husk at CSV er ren tekst, så alt kommer inn som strenger. Pakk tall-felt i int(...) (eller float(...)) før du regner: int(elev["alder"]).

Slik ser det ut i kode

Slik gikk det galt

sum = 0
for elev in data:
    sum = sum + elev["alder"]   # "17" er en streng -> feil

Slik fikser du det

sum = 0
for elev in data:
    sum = sum + int(elev["alder"])   # gjor om til tall forst

Les om dette i boka

↓↑ naviger Enter åpne ShiftEnter ny fane Esc lukk
Velg tema
Skala