reguläre Ausdrücke in Python
Es bestand eine Aufgabe darin eine Json Datei zu durchsuchen und vorgegebene Werte auszulesen und weiter zu verarbeiten.
Was zunächst recht einfach klang (und noch immer klingt), entpuppte sich als doch als weniger trivial, da
ein Teil der Aufgabe war einen Key, der mehrere Werte enthält, als jeweilig neuen Datensatz weiter zu verarbeiten.
Im ersten Fall Ansatz ich den umständlichen Weg gewählt.
Suche nach den Schlüsselwörtern…. und auslesen ab der Position.
Ich habe dann weiter über das Problem nachgedacht und
… und Suchmuster wären doch recht hilfreich.
reguläre Ausdrücke.
So ein Ansatz wäre z.B.:
re.search('"(.+?)": "(.+?)"
Ein konkreter Ansatz (Ausschnitt) wäre vlt folgender:
pfadDatei = 'quell-server-in/' + datei with open (pfadDatei) as fobj: # ich möchte hier einen anderen Ansatz versuchen. # statt nach einem konkretem Wort, möchte ich nach # Anführungszeichen suchen. # Der einfache Fall sind 4 Anführungszeichen # Das erste eröffnet einen Schlüsselnamen, das # zweite beendet ihn. # der 3. und 4. umschließt den Wert for line in fobj: if line.count('"')>3: print (line.find('"')) try: ### key found = re.search('"(.+?)"', line).group(1) ### value found2 = re.search('"(.+?)": "(.+?)"', line).group(2) print ("Key = " + found + " value = " + found2 ) except AttributeError: pass
Als Prinzip für die Herangehensweise war das hilfreich. Man muss sich damit beschäftigen um für das eigene Problem eine sinnvolle Lösung zu entwickeln.