Serpens66 Posted July 3, 2019 Share Posted July 3, 2019 (edited) 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? Edited July 3, 2019 by Serpens66 Link to comment Share on other sites More sharing options...
PeWi Posted July 3, 2019 Share Posted July 3, 2019 (edited) 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() Edited July 3, 2019 by PeWi 1 Link to comment Share on other sites More sharing options...
skunk Posted July 3, 2019 Share Posted July 3, 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 to comment Share on other sites More sharing options...
Aktienspekulaant Posted July 3, 2019 Share Posted July 3, 2019 (edited) 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 Edited July 3, 2019 by Aktienspekulaant tipper Link to comment Share on other sites More sharing options...
Serpens66 Posted July 3, 2019 Author Share Posted July 3, 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 to comment Share on other sites More sharing options...
Jokin Posted July 3, 2019 Share Posted July 3, 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 to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now