Seite 1 von 1

Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 13:46
von Hucho
Hallo,

ich arbeite mit Phyton in Arcgis und versuche gerade als Neuling einen Befehl zusammenzubasteln.
Der Befehl müsste richtig sein; trotzdem bekomme ich einen Error.
Woran könnte das liegen:
Ausgangsstrings (Zugriff über die Variable Value):
  • !0?2,!0?4
Befehl:

Code: Alles auswählen

"%Value%".replace("!",""vges>=").replace("?",".")
Leider bekomme ich immer folgenden Fehler:

ERROR 000539: Error running expression: "!0?2".replace("!",""vges>=").replace("?",".") <type 'exceptions.SyntaxError'>: invalid syntax (<string>, line 1)
Failed to execute (Calculate Value).

Woran könnte das liegen?

Grüße,

Matthias

Re: Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 14:06
von BlackJack
@Hucho: Die Zeile ist syntaktisch falsch. Schau Dir mal an wo Deine literalen Zeichenketten anfangen und aufhören, bzw. eben nicht aufhören. Wobei wenn man den Fehler korrigiert natürlich in der Zeichenkette "%Value%" gar nichts ersetzt wird, weil weder '!' noch '?' darin vorkommen.

Re: Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 14:27
von Hucho
Hallo,

danke für die Antwort. "%Value%" ist eine inline Variable in ArcGis...
Wo liegt denn der Fehler in meiner Syntax? In der Arcgis-Hilfe ist
die Syntax genauso aufgebaut - bei mir funktioniert sie aber nicht.

VG

Matthias

Re: Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 14:46
von EyDu
Denke einfach mal über die Anführungszeichen nach ;-)

Re: Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 14:53
von Hucho
Danke für den Tip, aber genau die habe ich mir sehr genau angesehen. Ich wüßte nicht, wo da der Fehler ist. Ich brauch ""vges...; sprich Anführungszeichen für einen sql-Befehl.

????
Grüße

Matthias

Re: Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 14:57
von senft
Dann nimmst du entweder einzelne Anführungstriche, oder escapest dein "

Code: Alles auswählen

'%Value%'.replace('!', '"vges>=').replace('?', '.')
oder

Code: Alles auswählen

"%Value%".replace("!", "\"vges>=").replace("?", ".")

Re: Zeichen durch String ersetzen

Verfasst: Montag 22. August 2011, 17:10
von Hucho
Super, das hat geklappt, man darf nicht "" sondern '" schreiben.

Danke Euch!