Hallo,
ich will ein paar Berechnungen anstellen und verwende dazu Daten,
die in Tabellenform vorliegen und die sich auch ggf. änderen können.
Wie lese ich diese am besten an?
Ich dachte evt. an eine JSON-Datei, die ich dann hierarchisch aufbaue und
dan bei Bedarf abfrage.
kann aber auch völliger sein Unsinn sein
Danke
codergirl
Tabellen effizient einlesen
Kann man so pauschal nicht beantworten. JSON ist an sich schon mal nicht schlecht, weil es anders als CSV schon einen numerischen Typen eingebaut hat.
Aber letztlich haengt's davon ab, wie genau die Daten aussehen, und was du auf ihnen machen willst. Es koennte auch sein, dass zB sqlite besser geeignet ist, weil es viele Daten sind, bei denen du dann von Filter-Kriterien profitierst, die sich in SQL leicht ausdruecken lassen. Muss aber nicht.
Aber letztlich haengt's davon ab, wie genau die Daten aussehen, und was du auf ihnen machen willst. Es koennte auch sein, dass zB sqlite besser geeignet ist, weil es viele Daten sind, bei denen du dann von Filter-Kriterien profitierst, die sich in SQL leicht ausdruecken lassen. Muss aber nicht.
Und wie arbeitest du da drauf? Die Menge ist ja recht gering, aber wenn es sich zB um sich staendig weiterentwickelnde Daten handelt, waere es ggf. trotzdem gut, die anzuhaengen statt ueberzubuegeln. Aus Gruenden der Robust- und Nachvollziehbarkeit.
Hi
also die Änderungsrate wird sehr gering sein. Nur will ich es nich tim Code
einhängen, falls ich doch mal was ändern muss.
Ansonsten wird zur Laufzeit oder "soll" zur Laufzeit drauf zugriffen werden.
codergirl
also die Änderungsrate wird sehr gering sein. Nur will ich es nich tim Code
einhängen, falls ich doch mal was ändern muss.
Ansonsten wird zur Laufzeit oder "soll" zur Laufzeit drauf zugriffen werden.
codergirl
Nur ein Mädchen, das nie so viel weiss, wie die Jungs
Wenn die (wenigen) Daten in Tabellenform vorliegen und gelegentlich geändert werden, wäre CSV durchaus eine Überlegung wert: Du könntest dann die CSV-Datei direkt editieren, was bei JSON zwar auch geht, aber weniger schön ist.
Wenn die Tabelle primär Zahlen und einfache Zeichenketten enthält und nicht gerade eine Größe im GB Bereich hat, ist es, wie __deets__ schon andeutete, im Prinzip weitestgehend Geschmackssache. Wenn du JSON nehmen möchtest, kannst du zum Beispiel eine Liste von Listen nehmen, oder eine Liste von Dictionaries, bei denen die Spaltennamen als Schlüssel dienen. Ich bevorzuge für solche einfachen Zwecke (zum Teil auch aus Gewohnheit) TSV Dateien. JSON kann man nehmen, ich verwende das aber vor allem dann, wenn etwas mehr Struktur gebraucht wird; insb. auch als Alternative für einige Einsatzfälle von XML. JSON ist halt eine flexiblere Serialisierung, bei der das konkret verwendete Format ziemlich frei definierbar ist, während CSV & co zwar auch Variation erlauben, aber deutlich spezifischer auf einen konkreten Anwendungsfall zugeschnitten sind. Für JSON gibt es ja inzwischen auch diverse Ansätze, Äquivalente für bestimmte Aspekte von XML zu erarbeiten (Json-Schema, Json-Pointer, etc.)
Trennzeichen-basierte Format (CSV, TSV, etc.) haben für einfache Daten (also zum Beispiel einfache Datentabellen), den Vorteil, dass sie leicht zu erzeugen und zu verarbeiten sind (notfalls auch ohne Bibliothek); insb. Zeilenweise Verarbeitung großer Dateien ist unproblematisch, während man für JSON einen Parser braucht, der so etwas kann. TSV Dateien können mit gängigen Unix-Tools gut verarbeitet werden und Software, die "irgendwas mit Zahlen" macht, (R, Calc/Excel, Numpy, SPSS, etc.), hat oft einen Importmodus, um solche Daten einzulesen. Diese Formate haben natürlich auch eine ganze Reihe von Nachteilen; aber wenn's nur um relativ homogene Tabellen geht, sind sie oft keine so schlechte Wahl.
Trennzeichen-basierte Format (CSV, TSV, etc.) haben für einfache Daten (also zum Beispiel einfache Datentabellen), den Vorteil, dass sie leicht zu erzeugen und zu verarbeiten sind (notfalls auch ohne Bibliothek); insb. Zeilenweise Verarbeitung großer Dateien ist unproblematisch, während man für JSON einen Parser braucht, der so etwas kann. TSV Dateien können mit gängigen Unix-Tools gut verarbeitet werden und Software, die "irgendwas mit Zahlen" macht, (R, Calc/Excel, Numpy, SPSS, etc.), hat oft einen Importmodus, um solche Daten einzulesen. Diese Formate haben natürlich auch eine ganze Reihe von Nachteilen; aber wenn's nur um relativ homogene Tabellen geht, sind sie oft keine so schlechte Wahl.