Estou tentando usar a calculadora de campo (ArcMap 10.0) para remover aspas duplas em um campo de endereço (não as coloquei lá, acredite). Eu tentei muitos encantamentos, mas ainda sou incapaz de decolar com um cálculo. sim, ambos os campos são string e ambos são de comprimento aceitável.
Este cálculo:
Resultados nisto:
Com esta mensagem de erro na caixa de diálogo Resultados:
E repito, não os coloquei lá.
arcgis-desktop
arcgis-10.0
arcmap
field-calculator
python-parser
valveLondon
fonte
fonte
!testing![1:len(!testing!)-1]
Respostas:
Descobri que na 10.0 Field Calculator é bastante estranho.
Mas eu consegui fazê-lo funcionar. A idéia principal é colocar o nome do campo entre aspas simples.
Exemplo. vamos supor que temos campos
text1
etext2
. Ao invés de campo Calculandotext2
com a expressão!text1!
, o que provavelmente irá falhar, tente este:'!text1'
. Como você vê, estou usando aspas simples aqui.Então, de volta à sua tarefa. Será mais claro usar o Código de script pré-lógico:
A expressão será:
Espero que funcione para você.
Não experimentei mais, mas acho que esse comportamento estranho acontece porque o cálculo do campo é traduzido na chamada para a ferramenta ArcToolbox
CalculateField_management
e a expressão é fornecida como um parâmetro para ele (provavelmente adicionalmente entre aspas simples ou duplas).ATUALIZAR:
Minha solução anterior falhará caso haja aspas simples nos valores do campo
text1
.Agora eu consegui fazê-lo funcionar tanto no caso em que existem caracteres
'
como"
(aspas simples e duplas) dentro de qualquer valor no atributotext1
.Aqui está a expressão, que retornará a string original, suportando os dois tipos de aspas:
Para sua tarefa, ela pode ser estendida para (sem o Código de script pré-lógico):
fonte
'!testing!'
Se você estiver usando a versão 10.1 e tiver certeza de que deseja se livrar de todas as instâncias de aspas duplas, poderá usar:
Se alguém souber por que isso funciona na versão 10.1 e não na 10.0, eu estaria interessado.
Aqui estão os resultados da minha execução.
fonte
Aqui está uma maneira não-script de fazer isso.
"
:, selecione Substituir tudo (você precisará clicar no botão Substituir tudo duas vezes).fonte
Uma abordagem híbrida funcionou no meu sistema:
fonte
Eu não tentei isso dentro do Arc, mas consegui remover aspas duplas de uma string em um IDE Python desta maneira (rápida):
a2 imprime teste, sem aspas.
fonte
oi tente usar aspas simples como esta! test! .replace ('"', '')
fonte
Achei muito fácil com a antiga função VBScript:
Replace ([testing],"""","")
fonte