¿Encontrar / Reemplazar comillas dobles usando el Analizador Python de ArcGIS Field Calculator?

15

Estoy tratando de usar la Calculadora de campo (ArcMap 10.0) para eliminar las comillas dobles en un campo de dirección (no las puse allí, créeme). He intentado muchos encantamientos, pero todavía no puedo ni siquiera despegar con un cálculo. sí, ambos campos son cadenas y ambos tienen una longitud aceptable.

Este cálculo:

Resultadosenesto:

Con este mensaje de error en el cuadro de diálogo Resultados:

Y repito, no los puse ahí.

    
pregunta valveLondon 25.06.2012 - 19:56

7 respuestas

15

Descubrí que en 10.0 Field Calculator es bastante raro.

Pero he conseguido que funcione. La idea principal es incluir el nombre del campo con comillas simples.

Ejemplo. Supongamos que tenemos los campos text1 y text2 . En lugar de calcular el campo text2 con la expresión !text1! , que probablemente fallará, pruebe este: '!text1' . Como ves, estoy usando comillas simples aquí.

Entonces, volvamos a tu tarea. Será más claro utilizar el código de secuencia de comandos Pre-Logic:

def calc(value):
    return value.replace('"', '')

La expresión será:

calc('!text1!')

Espero que funcione para ti.

No he experimentado más, pero creo que ese comportamiento extraño ocurre porque el cálculo del campo se traduce en la herramienta de ArcToolbox CalculateField_management y la expresión se proporciona como un parámetro (probablemente incluido con comillas simples o dobles).

ACTUALIZAR :

Mi solución anterior fallará si hay comillas simples en los valores del campo text1 .

Ahora he logrado que funcione tanto en caso de que haya caracteres como ' y " (comillas simples y dobles) dentro de cualquier valor en el atributo text1 .

Aquí está la expresión, que devolverá la cadena original, admitiendo ambos tipos de citas:

'''!text1!'''[1:-1]

Para su tarea, se puede extender a (sin el código de secuencia de comandos pre-lógica):

'''!text1!'''[1:-1].replace('"', '')
    
respondido por el Alex Markov 25.06.2012 - 23:28
10

Si está utilizando la versión 10.1 y está seguro de que desea deshacerse de cada instancia de comillas dobles que pueda usar:

!testing!.replace("\"","")

Si alguien sabe por qué esto funciona en 10.1 y no en 10.0, me interesaría.

Aquí están los resultados de mi carrera.

    
respondido por el TurboGus 25.06.2012 - 20:39
8

Aquí hay una forma no de script para hacerlo.

  1. Inicia la sesión de edición en tu capa.
  2. Abre la tabla y resalta la columna de campo.
  3. Seleccione la flecha desplegable de Opciones de tabla y seleccione Buscar & Reemplazar.
  4. Seleccione la pestaña Reemplazar e ingrese Buscar: " , seleccione Reemplazar todo (tendrá que hacer clic dos veces en el botón Reemplazar todo).
respondido por el artwork21 25.06.2012 - 20:39
3

Un enfoque híbrido funcionó en mi sistema:

'!testing!'.replace("\"","")
    
respondido por el Aaron 26.06.2012 - 06:12
2

No he intentado esto dentro de Arc, pero pude eliminar las comillas dobles de una cadena en un IDE de Python de esta manera (rápida):

aStr ='"test"'

a1 = aStr.lstrip('"')
a2 = a1.rstrip('"')

print a2

prueba de impresiones a2, sin comillas.

    
respondido por el Timothy Michael 25.06.2012 - 22:48
0

¡Hola, intenta usar comillas simples como esta! test! .replace ('"', '')

    
respondido por el dango 25.06.2012 - 22:25
0

Lo encontré bastante fácil con la antigua función de VBScript: Replace ([testing],"""","")

    
respondido por el Alex 23.01.2018 - 09:42

Lea otras preguntas en las etiquetas