ich möchte von der EZB die tagesaktuellen Wechelkurse herunterladen und in einem Währungsrechner verwenden. Allerdings schaffe ich es nicht, mit einem RegEx die korrekten Kurse zu filtern. Hier ein kurzer Auszug aus dem Quelltext:
Code: Alles auswählen
def update_kurse():
import urllib
import re
site = urllib.urlopen('http://www.ecb.eu/euro.html').read()
date_liste = re.findall('(\d\d)\ (\w*)\ (\d{4})', site)[0]
raw_kurse = re.findall('(.*)\ \((\w*).*(\d+\.\d+)', site)
kursliste = [('Euro', 'EUR', '1.0')]
kursdict = {'EUR':1.0}
for i in raw_kurse:
kursliste.append(i)
kursdict[i[1]] = float(i[2])
return kursliste, kursdict, date_liste
Meines Erachtens müsste der Audruck (\d+\.\d+) alle Dezimalzahlen korret erfassen. Aber statt 160.86 liefert er mir nur 0.86...
Sollte \d+ nicht ein- oder mehrmaliges Vorkommen einer Ziffer beschreiben? Und ist das Vorgehen nicht "gierig"?
Es ist schon spät, vielleicht stehe ich auch nur auf dem Schlauch. Hilft mir jemand runter?
Grüße und eine gute Nacht,
Doc