J'essaie d'utiliser le calculateur de champ (ArcMap 10.0) pour supprimer les guillemets doubles dans un champ d'adresse (je ne les ai pas mis là-dedans, croyez-moi). J'ai essayé de nombreuses incantations mais je n'arrive toujours pas à décoller avec un calcul. oui, les deux champs sont des chaînes et les deux sont de longueur acceptable.
Ce calcul:
Résultats en ceci:
Avec ce message d'erreur dans la boîte de dialogue Résultats:
Et je le répète, je ne les ai pas mis dedans.
arcgis-desktop
arcgis-10.0
arcmap
field-calculator
python-parser
valveLondres
la source
la source
!testing![1:len(!testing!)-1]
Réponses:
J'ai trouvé que dans 10.0 Field Calculator, c'est assez bizarre.
Mais j'ai réussi à le faire fonctionner. L'idée principale est de mettre le nom du champ entre guillemets simples.
Exemple. supposons que nous ayons des champs
text1
ettext2
. Plutôt que de calculer le terraintext2
avec l' expression!text1!
, ce qui va probablement échouer, essayez celui - ci:'!text1'
. Comme vous le voyez, j'utilise des guillemets simples ici.Revenons donc à votre tâche. Il sera plus clair d'utiliser le code de script pré-logique:
L'expression sera:
J'espère que cela fonctionnera pour vous.
Je n'ai pas expérimenté plus loin, mais je pense qu'un tel comportement étrange se produit car le calcul du champ est traduit dans l'appel à l'outil ArcToolbox
CalculateField_management
et l'expression est fournie en tant que paramètre (probablement également en plus avec des guillemets simples ou doubles).MISE À JOUR:
Ma solution précédente échouera au cas où il y aurait des guillemets simples dans les valeurs de champ
text1
.Maintenant, j'ai réussi à le faire fonctionner au cas où il y aurait des caractères
'
et"
(guillemets simples et doubles) à l'intérieur d'une valeur d'attributtext1
.Voici l'expression, qui renverra la chaîne d'origine, prenant en charge les deux types de guillemets:
Pour votre tâche, il peut être étendu à (sans code de script pré-logique):
la source
'!testing!'
Si vous utilisez la version 10.1 et que vous êtes sûr de vouloir vous débarrasser de chaque instance de guillemets doubles que vous pouvez utiliser:
Si quelqu'un sait pourquoi cela fonctionne en 10.1 et non en 10.0, je serais intéressé.
Voici l'entrée des résultats de ma course.
la source
Voici une manière non scriptée de le faire.
"
:, sélectionnez Remplacer tout (vous devrez cliquer deux fois sur le bouton Remplacer tout).la source
Une approche hybride a fonctionné sur mon système:
la source
Je n'ai pas essayé cela à l'intérieur d'Arc, mais j'ai pu supprimer les guillemets doubles d'une chaîne dans un IDE Python de cette manière (rapide):
a2 imprime le test, sans guillemets.
la source
salut essayez d'utiliser des guillemets simples comme celui-ci! test! .replace ('"', '')
la source
Je l'ai trouvé assez facile avec l'ancienne fonction VBScript:
Replace ([testing],"""","")
la source