Övning 24 / 24
Avslutning: enkel sensorrapport
Beräknad tid: 30 min
Varför
Sista övningen samlar filer, funktioner, listor, dictionaries och slump. Det liknar hur en liten logger kan se ut innan någon riktig sensor kopplas in. Fortfarande bara Python — ingen hårdvara.
Den nya idén
JSON är en vanlig textform för strukturerad data: listor och nyckel–värde-par som både människor och program kan läsa. Python har modulen json i standardbiblioteket.
import json
rader = [{"temp": 20, "fukt": 41}]
with open("data.json", "w", encoding="utf-8") as fil:
json.dump(rader, fil, indent=2)indent=2 gör filen läsbar. json.dump skriver till en redan öppnad fil. Det här är samma sorts data du senare kan skicka över nätet — men det är inte uppgiften nu.
Bygg små funktioner: en som skapar en påhittad mätning, en som skriver rapporten. Huvudprogrammet anropar dem.
Uppgift
Skapa filen sensorrapport.py som gör följande:
- Importerar random och json.
- Har en funktion ny_matning() som returnerar en dictionary med temp (heltal 18–23) och fukt (heltal 35–50).
- Skapar en lista med fem sådana mätningar.
- Skriver listan till sensor.json med json.dump.
- Skriver ut hur många mätningar som sparades, och den högsta temperaturen i listan.
Öppna sensor.json efter körningen och kontrollera att det ligger fem objekt i en lista. Talen varierar mellan körningar.
Förväntat resultat
Terminalen ska ha två rader i den här stilen. Antalet är alltid 5. Maxtemperaturen är något av de slumpade talen, alltså mellan 18 och 23. Exempel:
Sparade 5 mätningar.
Högsta temperatur: 22