Przekonałem się, że w 10.0 Field Calculator jest dość dziwny.
Ale udało mi się to uruchomić. Główną ideą jest dołączenie nazwy pola do pojedynczych cudzysłowów.
Przykład. załóżmy, że mamy pola text1
i text2
. Zamiast Obliczanie pola text2
z wyrazem !text1!
, który prawdopodobnie zakończy się niepowodzeniem, spróbuj tego: '!text1'
. Jak widzisz, używam tutaj pojedynczych cytatów.
Wróćmy do swojego zadania. Bardziej zrozumiałe będzie użycie kodu skryptu przedlogicznego:
def calc(value):
return value.replace('"', '')
Wyrażenie będzie:
calc('!text1!')
Mam nadzieję, że ci się uda.
Nie eksperymentowałem dalej, ale myślę, że takie dziwne zachowanie ma miejsce, ponieważ obliczenia pola są tłumaczone na wywołanie narzędzia ArcToolbox, CalculateField_management
a wyrażenie jest podawane jako parametr (prawdopodobnie dodatkowo w postaci pojedynczych lub podwójnych cudzysłowów).
AKTUALIZACJA:
Moje poprzednie rozwiązanie zawiedzie w przypadku, gdy w wartościach pola występują pojedyncze cudzysłowy text1
.
Teraz udało mi się sprawić, by działał zarówno w przypadku znaków, jak '
i "
(pojedynczych i podwójnych cudzysłowów) w dowolnej wartości atrybutu text1
.
Oto wyrażenie, które zwróci oryginalny ciąg znaków, obsługujący oba typy cudzysłowów:
'''!text1!'''[1:-1]
W przypadku zadania można go rozszerzyć na (bez kodu skryptu przedlogicznego):
'''!text1!'''[1:-1].replace('"', '')
!testing![1:len(!testing!)-1]