Я пытаюсь использовать Калькулятор поля (ArcMap 10.0), чтобы убрать двойные кавычки в поле адреса (я не помещал их туда, поверьте мне). Я перепробовал много заклинаний, но до сих пор не могу даже оторваться от земли с расчетом. да, оба поля являются строковыми, и оба имеют приемлемую длину.
Этот расчет:
Результаты в этом:
С этим сообщением об ошибке в диалоге результатов:
И я повторяю, я не положил их туда.
arcgis-desktop
arcgis-10.0
arcmap
field-calculator
python-parser
valveLondon
источник
источник
!testing![1:len(!testing!)-1]
Ответы:
Я обнаружил, что в 10.0 Field Calculator довольно странно.
Но мне удалось заставить его работать. Основная идея заключается в том, чтобы заключить имя поля в одинарные кавычки.
Пример. Предположим, у нас есть поля
text1
иtext2
. Вместо расчета поляtext2
с выражением!text1!
, которое , вероятно , потерпит неудачу, попробуйте это:'!text1'
. Как вы видите, я использую здесь одинарные кавычки.Итак, вернемся к вашей задаче. Будет более понятно использовать код Pre-Logic Script:
Выражение будет:
Я надеюсь, что это будет работать для вас.
Я не экспериментировал дальше, но думаю, что такое странное поведение происходит, потому что вычисление поля переводится в вызов инструмента ArcToolbox,
CalculateField_management
а выражение предоставляется в качестве параметра к нему (возможно, дополнительно заключено в одинарные или двойные кавычки).ОБНОВИТЬ:
Мое предыдущее решение не удастся, если в значениях поля есть одинарные кавычки
text1
.Теперь мне удалось заставить его работать как в случае, когда есть символы
'
и"
(одинарные и двойные кавычки) внутри любого значения в атрибутеtext1
.Вот выражение, которое будет возвращать исходную строку, поддерживающую оба типа кавычек:
Для вашей задачи он может быть расширен до (без кода Pre-Logic Script):
источник
'!testing!'
Если вы используете версию 10.1 и уверены, что хотите избавиться от каждого экземпляра двойных кавычек, вы можете использовать:
Если кто-нибудь знает, почему это работает в 10.1, а не в 10.0, мне было бы интересно.
Вот запись результатов моего бега.
источник
Вот не сценарий способ сделать это.
"
, выберите «Заменить все» (дважды нажмите кнопку «Заменить все»).источник
Гибридный подход работал в моей системе:
источник
Я не пробовал это внутри Arc, но я смог удалить двойные кавычки из строки в Python IDE следующим (быстрым) способом:
Тест А2 печатает, без кавычек.
источник
Привет, попробуйте использовать одинарные кавычки, как это! test! .replace ('"', '')
источник
Я нашел это довольно легко со старой функцией VBScript:
Replace ([testing],"""","")
источник