Hallo Forum, ich kenne mich mit Python leider nicht aus, muss aber einen Trigger in Python erstellen, ich arbeite mit PostgreSQL 8.3 und Python 2.5.
Ziel des Triggers ist es aus dem Feld raw0 die binären Daten (einer Polylinie) rauszuziehen.
Folgendes Skript habe ich:
import struct (brauche ich später noch)
p = "SELECT raw0 FROM haus1 where id = 1 and layer = 0";
(raw0= enthält die binären Daten!!!)
r = plpy.execute(p);
octstr = r[0]['raw0']
return octstr
das RETURN-Ergebnis (ein Octal-String) sieht wie folgt aus:
octstr= \\000\\000\\000\\000~ KA\\000\\000\\000\\000-\\255VA\\000\\000\\000\\000\\234 KA\\000\\000\\000\\000<\\255VA\\000\\000\\000\\000\\324$KA\\000\\000\\000\\000)\\261VA\\000\\000\\000\\000\\340'KA\\000\\000\\000\\000\\320\\257VA\\000\\000\\000\\000\\316*KA\\000\\000\\000\\000\\210\\254VA\\000\\000\\000\\000\\322&KA\\000\\000\\000\\000k\\253VA
die Buchstaben und die anderen Zeichen sollen aber nicht auftauchen sondern ich brauche aber folgendes Ergebnis:
ocstr='\\000\\000\\000\\000\\000\\120\\174\\100\\000\\000\\000\\000\\000\\020\\167\\100\\000\\000\\000\\000\\000\\120\\174\\100\\000\\000\\000\\000\\000\\020\\167\\100\\000\\000\\000\\000\\000\\000\\177\\100\\000\\000\\000\\000\\000\\360\\165\\100\\000\\000\\000\\000\\000\\260\\175\\100\\000\\000\\000\\000\\000\\360\\164\\100'
HAT JEMAND EINE IDEE WORAN DAS LIEGEN KÖNNTE?? DAS WÄRE TOLL!!!!
VIELEN DANK IM VORAUS!!!
Daniel
Edit (BlackJack): Gross-/Kleinschreibung im Titel.
Python 2.5 Extrahierung binärer Daten in PostgreSQL 8.3
Hi Daniel und willkommen im Forum.
Bitte SCHREIE nicht so rum und benutze die Code-Tags für deinen Code. Das macht deine Beiträge lesenswerte und erhöht die Chance, dass jemand freundlich antwortet.
Zu deinem Problem: Du kannst einfach über deinen String iterieren und einen neuen String:
Für ein besseres Verständnis für Python empfehle ich dir das offizielle Python Tutorial durchzuarbeiten. Dort findet sich auch eine hilfreiche Dokumentation.
Grüße
gkuhl
Bitte SCHREIE nicht so rum und benutze die Code-Tags für deinen Code. Das macht deine Beiträge lesenswerte und erhöht die Chance, dass jemand freundlich antwortet.
Zu deinem Problem: Du kannst einfach über deinen String iterieren und einen neuen String:
Code: Alles auswählen
import string
newstr = ""
octstr = "...dein String..."
for char in octstr:
if char in string.digits or char == "\\":
newstr += char
print newstr
Grüße
gkuhl
-
- User
- Beiträge: 2
- Registriert: Donnerstag 22. Januar 2009, 14:08
Hallo gkuhl,
vielen Dank für die Tipps. Ich werde mich nun mal an das Python-Tutorial machen.
Gruss
Daniel
vielen Dank für die Tipps. Ich werde mich nun mal an das Python-Tutorial machen.
Gruss
Daniel