Я виявив, що в 10.0 Field Calculator досить дивно.
Але мені вдалося змусити його працювати. Основна ідея - укласти ім'я поля єдиними лапками.
Приклад. нехай у нас є поля text1
і text2
. Замість розрахунку поля text2
з виразом !text1!
, яке , ймовірно , зазнає невдачі, спробуйте це: '!text1'
. Як ви бачите, тут я використовую одинарні цитати.
Отже, поверніться до свого завдання. Зрозумілішим буде використання до-логічного коду сценарію:
def calc(value):
return value.replace('"', '')
Вираз буде таким:
calc('!text1!')
Сподіваюся, це спрацює для вас.
Я не експериментував далі, але думаю, що така дивна поведінка трапляється, тому що обчислення поля переводиться на виклик інструменту ArcToolbox CalculateField_management
і вираз надається як параметр для нього (ймовірно, додатково додається до одиничних або подвійних лапок).
ОНОВЛЕННЯ:
Моє попереднє рішення не вдасться у випадку, якщо у значеннях поля є одиничні лапки text1
.
Тепер мені вдалося змусити його працювати як у випадку, коли в атрибуті є знаки, так '
і "
(одинарні та подвійні лапки) text1
.
Ось вираз, який поверне початковий рядок, підтримуючи обидва типи цитат:
'''!text1!'''[1:-1]
Для вашого завдання його можна поширити на (без попереднього логічного коду сценарію):
'''!text1!'''[1:-1].replace('"', '')
!testing![1:len(!testing!)-1]