📂 Arbeiten mit CSV- und JSON-Dateien in Python#

🔍 CSV vs. JSON – Was ist was?#

Format

Beschreibung

Typisches Einsatzgebiet

CSV

„Comma-Separated Values“, tabellenartig

Tabellen, Excel-Export, Messdaten

JSON

„JavaScript Object Notation“, strukturiert

APIs, Konfigurationsdaten, Objekte

🟨 Teil 1: CSV-Dateien lesen & schreiben#

📄 Beispiel-Datei: personen.csv#

Name,Alter,Stadt
Anna,25,Berlin
Ben,30,Hamburg
Clara,22,München

✅ Lesen mit csv.reader#

import csv

with open("personen.csv", newline="") as f:
    reader = csv.reader(f)
    for zeile in reader:
        print(zeile)

➡️ Ausgabe:

['Name', 'Alter', 'Stadt']
['Anna', '25', 'Berlin']
['Ben', '30', 'Hamburg']
['Clara', '22', 'München']

✅ Lesen mit csv.DictReader (Spalten als Schlüssel)#

with open("personen.csv", newline="") as f:
    reader = csv.DictReader(f)
    for person in reader:
        print(person["Name"], person["Stadt"])

📝 Schreiben mit csv.writer#

daten = [["Name", "Alter"], ["Eva", 29], ["Max", 35]]

with open("neue_personen.csv", "w", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(daten)

🟦 Teil 2: JSON-Dateien lesen & schreiben#

📄 Beispiel-Datei: personen.json#

[
    {"name": "Anna", "alter": 25, "stadt": "Berlin"},
    {"name": "Ben", "alter": 30, "stadt": "Hamburg"}
]

✅ Einlesen mit json.load#

import json

with open("personen.json", "r") as f:
    daten = json.load(f)

for person in daten:
    print(person["name"], person["stadt"])

📝 Schreiben mit json.dump#

personen = [
    {"name": "Lena", "alter": 28},
    {"name": "Paul", "alter": 34}
]

with open("personen_neu.json", "w") as f:
    json.dump(personen, f, indent=2)

➕ Von String nach JSON (und zurück)#

# String → Python-Datenstruktur
json_str = '{"name": "Anna", "alter": 25}'
daten = json.loads(json_str)

# Python-Datenstruktur → String
neuer_str = json.dumps(daten, indent=2)

🎓 Mini-Projekt: Analyse von Umfragedaten aus einer CSV-Datei#

Analysieren Sie Umfrageergebnisse aus einer .CSV Datei. Ziel ist es, einfache statistische Auswertungen durchzuführen und die Daten sinnvoll zu interpretieren.

📁 Beispielhafte Datei: umfrage.csv#

Name,Alter,Studiengang,Schlafstunden,Stresslevel,Bildschirmzeit
Anna,22,Informatik,6,4,7.5
Ben,23,BWL,7,2,6.0
Clara,21,Informatik,5,5,8.0
David,24,Psychologie,6,3,5.5
Ella,20,Informatik,8,1,4.0

🧠 Ziele des Projekts#

  • CSV-Datei einlesen mit csv.DictReader

  • Umwandlung von Werten in passende Datentypen (z. B. int, float)

  • Einfache Berechnungen (Durchschnitt, Maximalwerte, Filterungen)

  • Zählen, Filtern und Gruppieren nach Kriterien (Studiengang, Stresslevel…)

🔧 Aufgabenstellung:#

  • Datei einlesen und alle Zeilen als Dictionary verarbeiten

  • Berechne den Durchschnitt der Schlafstunden aller Teilnehmenden

  • Finde die Person mit der höchsten Bildschirmzeit

  • Zähle, wie viele Personen aus dem Fach Informatik kommen

  • Filtere alle, deren Stresslevel größer als 3 ist

  • Berechne den Durchschnitt der Bildschirmzeit pro Studiengang

Lösung