Zeichen durch String ersetzen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hucho
User
Beiträge: 4
Registriert: Montag 22. August 2011, 13:38

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
Zuletzt geändert von Anonymous am Montag 22. August 2011, 14:02, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
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.
Hucho
User
Beiträge: 4
Registriert: Montag 22. August 2011, 13:38

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Denke einfach mal über die Anführungszeichen nach ;-)
Das Leben ist wie ein Tennisball.
Hucho
User
Beiträge: 4
Registriert: Montag 22. August 2011, 13:38

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
senft
User
Beiträge: 25
Registriert: Montag 31. März 2008, 14:47

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("?", ".")
Hucho
User
Beiträge: 4
Registriert: Montag 22. August 2011, 13:38

Super, das hat geklappt, man darf nicht "" sondern '" schreiben.

Danke Euch!
Antworten