Auswahl des richtigen Formats zum Schreiben von .csv in DB

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
NoUseForAName
User
Beiträge: 8
Registriert: Montag 22. März 2021, 17:21

Dienstag 23. März 2021, 13:43

Hallo,
ich bin in einem Praktikum, aus dem auch nun nicht mehr wechseln kann, und muss nun eine Aufgabe statt in php in Python schreiben, eine Sprache mit der ich keine Erfahrung habe.

Zunächst soll ich als Übrung eine .csv Datei auslesen die die Betreffzeilen von mails in einem bestimmten Format enthält. Diese beziehen sich jeweils auf ein Programm, dessen Primärschlüssel ich durch Abfrage einer anderen Tabelle ermittele.

Nun brauche ich eine Datenstruktur die in etwa einem mehrdimensionalem Array entspricht. Sortiert werden sie zuerst nach Produktname, der aktuellste Eintrag wird dann in der Datenbank hinterlegt. Allerdings muss ich auch noch mit Datumswerten aller Einträge Rechnen, etwa den Mittelwert bestimmen in dem die mails auflaufen.

Der Eintrag in die (bisher noch leere) Datenbank sollte etwa so sein:
Produkt Name, Anzahl der eingegangenen Mails, letzte Versionsnummer, durchschnittliche Zeit zwischen 2 Mails.
Für jedes Produkt benötige ich eine extra Struktur um die Berechnungen durchzuführen bzw. die letzte mail zu emitteln.
Ich habe aber bisher nicht herausgefunden wie ein mehrdimensionalen Assoziativen Array mit dem ich diese Aufgabe lösen könnte unter Python erstelle. Zum sortieren würde ich Teile einfach in die Datenbank schreiben und die Werte dann einfach sortiert ausgeben. Nur mit den mehrdimensionalen Arrays komme ich da nicht klar. Vielleicht ist ja jemand erfahrener mit der Suche nach Tutorials. Wäre für links dankbar.
einfachTobi
User
Beiträge: 332
Registriert: Mittwoch 13. November 2019, 08:38

Dienstag 23. März 2021, 21:19

Klingt erstmal nach einem Anwendungsfall für pandas. Das kann komfortabel csv lesen und die Daten mittels einfach Funktionen ordnen, so wie du es willst. Ist die Datenbank erforderlich oder willst du sie nur als Werkzeug für die Zusammenfassung nutzen? Wenn du uns Beispieldaten und den erwarteten Output samt Erklärung gibst, kann man da besser helfen.
NoUseForAName
User
Beiträge: 8
Registriert: Montag 22. März 2021, 17:21

Montag 5. April 2021, 23:33

Ok also das ganze sieht so aus, ich habe es aus der csv Zeilenweise eingelesen
['anaconda', '25 Jul 2019', '16:56:59', '2019.03', '2019.07'] (Name, Empfangsdatum,Zeit, letzte Version, aktuelle Version)

Am Ende soll das Ganze chronologisch in einer Datenbank landen mit den Feldern Software ID (PS),Empangszeit,alte und neue Versionnummer und die Durschnittszeit in der die Updates der einzelnen Versionen berehnet werden.

Durch dieses letzte Feld muss ich ja mails mit gleichem Produkt zusammenfassen, um dann den Wert zu berechnen. Eine andere Idee die ich hatte ist das Namensfeld zu prüfen, eine Liste mit den Zeiten zu erstellen, und bei einer Änderung des Namens die Liste zur Berechnung des Durschnitts zu verwenden...

Was mir noch nicht ganz klar ist - verwende ich eine Liste für alle Einträge, und darin dann wieder Listen für jedes einzelne Produkt ? Oder kann ich die übergeordnete Liste weglassen und nur einzelne für die Produkte schreiben ?

Danke schonmal für deine Hilfe. Wobei ich schon wieder von dem nächsten Problem, der Datenbankverbindung stehe
viewtopic.php?f=2&t=51772#p385763
Antworten