Ich versuche, mit dem Feldrechner (ArcMap 10.0) doppelte Anführungszeichen in einem Adressfeld zu entfernen (ich habe sie dort nicht eingegeben, glauben Sie mir). Ich habe viele Beschwörungsformeln ausprobiert, bin aber immer noch nicht in der Lage, mit einer Berechnung anzufangen. Ja, beide Felder sind Zeichenfolgen und beide haben eine akzeptable Länge.
Diese Berechnung:
Ergebnisse in diesem:
Mit dieser Fehlermeldung im Ergebnisdialog:
Und ich wiederhole, ich habe sie nicht hineingelegt.
arcgis-desktop
arcgis-10.0
arcmap
field-calculator
python-parser
valveLondon
quelle
quelle
!testing![1:len(!testing!)-1]
Antworten:
Ich habe festgestellt, dass in 10.0 Field Calculator ziemlich seltsam ist.
Aber ich habe es geschafft, es zum Laufen zu bringen. Die Hauptidee ist, den Feldnamen in einfache Anführungszeichen zu setzen.
Beispiel. Nehmen wir an, wir haben Felder
text1
undtext2
. Anstatt Berechnung Feldtext2
mit Ausdruck!text1!
, die wahrscheinlich fehl, versuchen Sie diesen:'!text1'
. Wie Sie sehen, verwende ich hier einfache Anführungszeichen.Also zurück zu deiner Aufgabe. Es wird klarer, Pre-Logic Script Code zu verwenden:
Ausdruck wird sein:
Ich hoffe es wird für dich funktionieren.
Ich habe nicht weiter experimentiert, aber ich denke, dass ein solches seltsames Verhalten auftritt, weil die Feldberechnung in den Aufruf des ArcToolbox-Tools übersetzt
CalculateField_management
und ein Ausdruck als Parameter dafür bereitgestellt wird (wahrscheinlich zusätzlich in einfachen oder doppelten Anführungszeichen).AKTUALISIEREN:
Meine vorherige Lösung schlägt fehl, wenn die Werte von field einfache Anführungszeichen enthalten
text1
.Jetzt habe ich es geschafft, es funktionieren zu lassen, sowohl für den Fall, dass Zeichen
'
und"
(einfache und doppelte Anführungszeichen) in einem beliebigen Wert im Attribut sindtext1
.Hier ist ein Ausdruck, der die ursprüngliche Zeichenfolge zurückgibt und beide Arten von Anführungszeichen unterstützt:
Für Ihre Aufgabe kann es erweitert werden (ohne Pre-Logic Script Code):
quelle
'!testing!'
Wenn Sie Version 10.1 verwenden und sicher sind, dass Sie alle doppelten Anführungszeichen entfernen möchten, die Sie verwenden können:
Wenn jemand weiß, warum dies in 10.1 und nicht in 10.0 funktioniert, wäre ich interessiert.
Hier ist der Ergebniseintrag von meinem Lauf.
quelle
Hier ist ein nicht-Skript-Weg, um es zu tun.
"
wählen Sie Alle ersetzen (Sie müssen zweimal auf die Schaltfläche Alle ersetzen klicken).quelle
Ein hybrider Ansatz funktionierte auf meinem System:
quelle
Ich habe dies in Arc noch nicht ausprobiert, aber ich konnte doppelte Anführungszeichen aus einem String in einer Python-IDE auf folgende (schnelle) Weise entfernen:
a2 druckt Test ohne Anführungszeichen.
quelle
Hallo, versuche es mit einfachen Anführungszeichen wie diesem! test! .replace ('"', '')
quelle
Ich fand es ziemlich einfach mit der alten VBScript-Funktion:
Replace ([testing],"""","")
quelle