Ich rufe aus einem Pythonscript mittles eines Fremdmoduls Datensaetze einer Filemakerdatenbank ab und bekomme ne Liste mit je einem Dictionary pro Datensatz zurueck. Drei Werte aus jedem Datensatz sind fuer mich relevant: Projektname, Shotname, Versionsnummer, wobei die Datensaetze auch genau nach diesen 3 Feldern sortiert sind. Inhaltlich koennte das dann so etwa aussehen:
Code: Alles auswählen
projektA 001_010 00
projektA 001_010 05
projektA 001_010 07
projektA 002_010 00
projektA 002_010 11
projektA 002_010 11b
projektA 003_010 04
projektB 101_010 00
projektB 101_010 01
projektB 101_010a 00
projektB 101_010a 05
usw.
Nun fehlt mir aber voellig der Plan, wie man das jetzt am besten in Python abbildet, um da gut ranzukommen. Nutzt man da verschachtelte Dictionaries? Also z.B. ein Dictionary, wo jedes Projekt einen Key ergibt, der dann wieder ein Dictionary enthaelt mit jedem Shot als Key? Und dann die Versionen als Listen-Value davon? So dass ich so z.B. dann auf die hoechste Version eines Shots zugreifen koennte:
Code: Alles auswählen
p['projektA']['001_010'][-1]
Aber so ne verschachtelte Struktur, da beisst es fuer mich aus vom Koennen her. Denn um etwas zu nem Dict bzw. ner Liste hinzufuegen zu koennen, muss ich ja jeweils vorher ne leere Version davon anlegen. Wenn es den Key aber schon gibt, darf ich natuerlich nicht nochmal das leere Objekt anlegen, sondern muss es ergaenzen.
Gibt es dafuer irgendwelche sinnvollen Konzepte, oder ist das einfach ne Verschachtelung von If-Abfragen nach dem Motto: Projekt schon vorhanden? Wenn nein: leg neuen Projekt-Key an mit leerem Dict-Value. Wenn ja: Shotname schon vorhanden? Wenn ja, Liste schon vorhanden? Ja, dann ergaenze neue Version, wenn nein, lege Liste an, etc., etc., etc.
Oder bin ich mit diesen verschachtelten Dicts/Listen total auf dem Holzweg und es gibt in Python viel sinnvollere Methoden, sowas abzubilden?
Danke fuer jeglichen Input und lieben Gruss,
Shakebox