wie geschickt Daten aus C++-Programm weiterverarbeiten

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
Benja
User
Beiträge: 5
Registriert: Dienstag 4. Juli 2006, 12:00

Hallo

Ich habe in einem C++-Programm eine recht krude Datenstruktur. Die besteht aus drei ineinander verschachtelten Maps.
Diese Rohdaten möchte ich gern in eine (oder mehrere) Dateien abspeichern.
Anschließend sollen - je nach Bedarf - die Dateien später eingelesen und verarbeitet werden. Diese Verarbeitung soll die aus den Dateien nur einige Teile filtern und diese Teile dann im CSV-Format abspeichern.

Da kam mir die Idee, das in einem Python-Skript zu machen, weil ein solches Skript bereits die Ausführung des Programmsdas die Rohdaten erzeugt steuert.
Ich frage mich, wie ich da am geschicktesten die Rohdaten abspeichere um sie möglichst einfach in Python verarbeiten zu können.

Der logische Aufbau der Rohdaten ist dieser hier:

Code: Alles auswählen

Oberkategorie: Value
  Zwischenkategorie: Value
    Unterkategorie: Key, Value
Dabei gibt es zwischen 1 und ~10000 verschiedene Values für Oberkategorie. Pro Value davon gibt es dann zwischen 1 und ~10000 verschiedene Values der Zwischenkategorie und für jeden davon gibt es dann wiederum zwischen 1 und ~50000 Values der Unterkategorie.

Meine Idee war jetzt etwa diese:

ID1 = ID für Oberkategorie
ID2 = ID für Zwischenkategorie
ID3 = ID für Unterkategorie

Code: Alles auswählen

ID1=0
ID2=0
ID3=0
ID3=1
...
ID2=1
ID3=0
...
ID1=1
ID2=0
ID3=0
ID3=1
ID2=1
ID3=0
ID3=2
...

Dann dem Python-Skript mitteilen, welche Bereiche von ID1, ID2 und ID3 benötigt werden und diese werden dann passend in eine Datei im CSV-Format geschrieben.

Ist das ein gangbarer Weg ? Oder hat jemand spontan eine bessere Idee ?

Ich danke euch !
BlackJack

Es kann an der frühen Stunde und zu wenig Kaffee liegen, das ich Dein Format nicht verstanden habe. Ich versuch's trotzdem mal. Du kannst die Antwort sicher auf Deine Daten anpassen.

Bei verschachtelten Daten fällt einem als erstes XML ein.

Code: Alles auswählen

<root>
    <category value="Value">
        <subcategory value="Value">
            <subsubcategory>
                <pair key="Key1" value="Value1" />
                <pair key="Key2" value="Value2" />
                ...
            </subsubcategory>
            ...
        </subcategory>
        ...
    </category>
    ...
</root>
Danach dann JSON.

Code: Alles auswählen

{'categories': [{'value': 'Value',
                 'subcategories': [{'value': 'Value',
                                    'subsubcategories': [{'Key1': 'Value1',
                                                          'Key2': 'Value2',
                                                          ...},
                                                          ...]},
                                   ...]},
                 ...]}
Oder wenn man Python als Zielsprache hat ConfigObj, das kann verschachtelte Konfigurationsdateien.

Code: Alles auswählen

[Categorie 1]

[[Zwischenkategorie 1]]

[[[Unterkategorie 1]]]
key1 = "Value 1"
key2 = "Value 2"

...
Benutzeravatar
beewee
User
Beiträge: 35
Registriert: Mittwoch 18. Januar 2006, 22:16

Hi,

eine andere sehr einfache Möglichkeit wäre das Speichern per pickle, soweit ich weiß habe ich zu C++-Bind auch mal ein Pickle-Binding gesehen.

BeeWee
Antworten