16 votos

ArcMap 10.0 Python de campo calculadora, buscar y reemplazar comillas

Estoy tratando de utilizar la Calculadora de Campo (ArcMap (10)) para quitar las comillas dobles en un campo de dirección (no me los puso ahí, créanme). He probado muchos encantamientos, pero todavía soy incapaz de despegar con un cálculo. sí, ambos campos son de cadena, y ambos son de aceptable longitud.

Este cálculo: Sample calculation

Los resultados en este:

fail

Con este mensaje de error en los Resultados de diálogo:

error message

Y repito, yo no los puso allí.

16voto

Simon Nickerson Puntos 17147

He encontrado que en 10.0 Calculadora de Campo es bastante raro.

Pero me las he arreglado para conseguir que funcione. La idea principal es la de encerrar campo de nombre con comillas simples.

Ejemplo. vamos a suponer que tenemos los campos text1 y text2. En lugar de Calcular el campo text2 con expresión !text1!, que probablemente se producirá un error, pruebe el siguiente: '!text1'. Como se puede ver estoy usando comillas simples aquí.

Así que, volviendo a su tarea. Será más claro para el uso de Pre-Lógica de Código de secuencia de Comandos:

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

La expresión será:

calc('!text1!')

Espero que funcione para usted.

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

ACTUALIZACIÓN:

Mi solución anterior se producirá en caso de que si hay comillas simples en los valores de campo text1.

Ahora me las he arreglado para conseguir que funcione tanto en el caso de cuando hay chars ' y " (las comillas dobles y simples) dentro de cualquier valor en el atributo text1.

Aquí es la expresión, que le devuelva el original de la cadena, el apoyo a ambos tipos de comillas:

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

Para su tarea puede ser extendido a (sin Pre-Lógica de Código de secuencia de Comandos):

'''!text1!'''[1:-1].replace('"', '')

10voto

Ilya Puntos 2279

Si está utilizando versión 10.1 y usted está seguro que desea eliminar de cada instancia de comillas dobles que se pueden utilizar:

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

Si alguien sabe por qué esto funciona en 10.1 y no 10.0 estaría interesado.

Aquí está la entrada de resultados de mi gestión.

enter image description here

8voto

Hameno Puntos 129

Aquí es una forma de escritura no hacerlo.

  1. Iniciar sesión de edición en capa.
  2. Abrir tabla y resaltar campo columna.
  3. Seleccione opciones de la tabla desplegable flecha y seleccione Buscar y reemplazar.
  4. Seleccione la ficha reemplazar y escriba lo que encontrar: " , seleccione reemplazar todos (tienes que Haz clic en el botón reemplazar todo dos veces).

3voto

Aaron Puntos 25882

Un enfoque híbrido trabajado en mi sistema:

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

2voto

Ricky Puntos 3648

No he probado esto dentro del arco, pero era capaz de quitar comillas de un string en un IDE de Python de esta manera (rápida):

aStr ='"test"'

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

print a2

a2 impresiones de prueba, sin las comillas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X