-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathm25_json.py
More file actions
67 lines (52 loc) · 1.72 KB
/
Copy pathm25_json.py
File metadata and controls
67 lines (52 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""
Modul 11: Teilnehmer jetzt mit Objekten
"""
import json
from datetime import date
from dateutil import parser
class Teilnehmer:
"""
Teilnehmer eines Kurses
Arguments:
object -- Objekt mit Attributen
"vorname": str,
"geburtsdatum": date,
"ort": str
"""
def __init__(self, vorname, geburtsdatum, ort):
self.vorname = vorname
self.geburtsdatum = geburtsdatum
self.ort = ort
def __repr__(self):
return f"{self.vorname}, {str(self.geburtsdatum)}, {self.ort}"
def alter(self):
"""
Berechnet das Alter eines Teilnehmers
Returns:
Alter als Int
"""
datum = self.geburtsdatum
heute = date.today()
jahre = heute.year - datum.year
if (heute.month, heute.day) < (datum.month, datum.day): # Hatte er noch nicht Geburtstag?
jahre -= 1
return jahre
def to_dict(self):
return {"vorname": self.vorname,
"geburtsdatum": str(self.geburtsdatum),
"ort": self.ort}
@staticmethod
def from_dict(d):
return Teilnehmer(d["vorname"], parser.parse(d["geburtsdatum"]), d["ort"])
t1 = Teilnehmer("Felix", date(1994, 12, 22), "Bad Salzufen")
t2 = Teilnehmer("Jan", date(1983, 12, 20), "Dietzenbach")
teilnehmerliste = [t1, t2]
with open("m25_teilnehmer.json", "w", encoding="utf-8") as datei:
json.dump([teilnehmer.to_dict() for teilnehmer in teilnehmerliste], datei, indent=4)
print(teilnehmerliste)
with open("m25_teilnehmer.json", "r", encoding="utf-8") as datei:
objekt = json.load(datei)
teilnehmerliste = []
for d in objekt:
teilnehmerliste.append(Teilnehmer.from_dict(d))
print(teilnehmerliste)