답변:
10.0 필드 계산기에서 매우 이상하다는 것을 알았습니다.
그러나 나는 그것을 작동 시켰습니다. 주요 아이디어는 필드 이름을 작은 따옴표로 묶는 것입니다.
예. 우리는 필드가 있다고 가정하자 text1
및 text2
. 실패 할 수있는 text2
expression을 사용하여 필드 를 계산하는 대신 다음을 !text1!
시도하십시오 '!text1'
. 보시다시피 여기서 작은 따옴표를 사용하고 있습니다.
다시 작업으로 돌아갑니다. 사전 논리 스크립트 코드를 사용하는 것이 더 명확합니다.
def calc(value):
return value.replace('"', '')
표현은 다음과 같습니다.
calc('!text1!')
나는 그것이 당신을 위해 작동하기를 바랍니다.
더 이상 실험하지는 않았지만 필드 계산이 ArcToolbox 도구에 대한 호출로 변환되고 CalculateField_management
표현식이 매개 변수로 제공되어 (아마도 작은 따옴표 또는 큰 따옴표로 묶여) 이상한 동작이 발생한다고 생각합니다 .
최신 정보:
field 값에 작은 따옴표가 있으면 이전 솔루션이 실패합니다 text1
.
이제 attribute의 값 안에 문자 '
와 "
(단일 및 큰 따옴표) 가있는 경우 모두 작동하도록했습니다 text1
.
다음은 두 가지 유형의 따옴표를 모두 지원하는 원래 문자열을 반환하는 표현식입니다.
'''!text1!'''[1:-1]
작업의 경우 (사전 논리 스크립트 코드없이) 다음과 같이 확장 할 수 있습니다.
'''!text1!'''[1:-1].replace('"', '')
'!testing!'
버전 10.1을 사용하고 있고 큰 따옴표의 모든 인스턴스를 제거하려면 다음을 사용할 수 있습니다.
!testing!.replace("\"","")
왜 이것이 10.0이 아닌 10.1에서 작동하는지 알고 있다면 관심이 있습니다.
내 실행 결과 항목은 다음과 같습니다.
나는 이것을 Arc 내부에서 시도하지는 않았지만 파이썬 IDE의 문자열에서 큰 따옴표를 다음과 같은 방법으로 제거 할 수있었습니다.
aStr ='"test"'
a1 = aStr.lstrip('"')
a2 = a1.rstrip('"')
print a2
a2는 따옴표없이 테스트를 인쇄합니다.
!testing![1:len(!testing!)-1]