Serpens66 Geschrieben 3. Juli 2019 Teilen Geschrieben 3. Juli 2019 (bearbeitet) Hi, ich werkel grad ein wenig mit den csv Transaktionsdateien diverser Bitcoinbörsen rum und will diese automatisiert mit Python auswerten. Problem ist gerade die inkonsequente Trennung von Bitstamp, da steht zb:Type,Datetime,Account,Amount,Value,Rate,Fee,Sub Type Deposit,"Jan. 02, 2017, 09:06 PM",Main Account,1.00000000 BTC,,,, Neben dem lösbaren Problem, dass als Menge sowohl eine Zahl als auch die Währung in einer Spalte steht (einfach beim Leerzeichen trennen), wird allgemein ein Komma als Separator verwendet, aber im Datum werden ebenfalls Kommata verwendet. Immerhin steht es zusätzlich noch in Anführungszeichen, sodass dies lösbar sein sollte. Aber so auf die Schnelle fällt mir grad kein logischer Weg ein, wie ich diese Spalten nun so voneinander trenne, dass alle Einträge korrekt sind, habt ihr eine Idee? Bearbeitet 3. Juli 2019 von Serpens66 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
PeWi Geschrieben 3. Juli 2019 Teilen Geschrieben 3. Juli 2019 (bearbeitet) 47 minutes ago, Serpens66 said: Problem ist gerade die inkonsequente Trennung von Bitstamp, da steht zb:Type,Datetime,Account,Amount,Value,Rate,Fee,Sub Type Deposit,"Jan. 02, 2017, 09:06 PM",Main Account,1.00000000 BTC,,,, Ins Blaue hinein geraten: Sollte das nicht der CSVReader von Python von alleine können? Immerhin ist in deinem Beispiel das Datum korrekt in Anführungszeichen, sprich, das Komma innerhalb des Datums ist korrekt "gekapselt". import csv csvFile = open(filename) csvReader = csv.reader(csvFile) csvlines = list(csvReader) csvFile.close() Bearbeitet 3. Juli 2019 von PeWi 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skunk Geschrieben 3. Juli 2019 Teilen Geschrieben 3. Juli 2019 Nimm halt einen ordentlichen Parser wie diesen hier: https://docs.python.org/3/library/csv.html Rest sollte selbsterklärend sein? Trennzeichen ist das Komma und Vergiss nicht die Anführungszeichen damit er versteht welches Komma er zu ignorieren hat. 2 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aktienspekulaant Geschrieben 3. Juli 2019 Teilen Geschrieben 3. Juli 2019 (bearbeitet) Ich benutze bei unsauber formatierten und umfangreichen csv Dateien immer den Umweg über einen Index: Sprich ich gebe in einer weiteren Spalte einen Index von 1 bis n ein und kopiere dann die einzelnen Spalten mit dem Index in eigene xlsx-Tabs. Dann formatiere ich es so wie ich benötige und über den Index bekomme ich alles wieder zusammen in den richtigen Reihenfolge. Ist vielleicht ein wenig "old School", funktioniert aber 100%. Rainer Bearbeitet 3. Juli 2019 von Aktienspekulaant tipper Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Serpens66 Geschrieben 3. Juli 2019 Autor Teilen Geschrieben 3. Juli 2019 danke für die Tipps Bin echt nicht auf die Idee gekommen, dafür nach einer fertigen python library zu suchen, ich hab das bisher immer selbst geschrieben (also mit read datei öffnen, alle zeilen erfassen, die zeilen mit split trennen usw). Werde csv.reader mal ausprobieren, danke Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jokin Geschrieben 3. Juli 2019 Teilen Geschrieben 3. Juli 2019 Ansonsten kannst Du mit regularExpressions die Kommata innerhalb von Anführungszeichen durch Semikolons ersetzen und im zweiten Schritt hast Du eine saubere CSV-Datei. 1 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden