Loading [MathJax]/extensions/TeX/mathchoice.js

4 votos

ERROR 000539: Error al ejecutar la expresión

Estoy intentando calcular mi campo End_Streets dentro de dos tablas unidas. Quiero eliminar el valor redundante SECONDARYN del campo STREETS.

" & ".join(!IntersectAndEnds2.Streets!.split(" & ").remove(!StreetSplit2.SECONDARYN!))

Aquí está una parte de mi mesa:

Joined Table

Este es el error que recibo cuando ejecuto la expresión en la calculadora de campos.

enter image description here

Error tipográfico:

ERROR 000539: Error al ejecutar la expresión: " & ".join(u "ACORN CT & LARAN RD".split(" & ").remove(u "ACORN CT"))
Traceback (última llamada más reciente):
File "", line1, in TypeError Failed to execute (CalculateField)

0 votos

Para confirmar, ¿quieres eliminar el valor de SECONDARYN de STREETS? Así que ACORN CT & LARAN RD se convierte en LARAN RD ?

0 votos

¿Intenta modificar un campo de una tabla unida?

4voto

jeff porter Puntos 1808

Estás intentando unirte a un List.remove (devuelto por .split()), pero un List.remove no devuelve nada, así que tendrías que eliminar el elemento de la lista y luego unirte, o si quieres hacerlo en línea, creo que esto funcionaría para excluir lo que no quieres:

" & ".join(i for i in !IntersectAndEnds2.Streets!.split(" & ") if i <> !StreetSplit2.SECONDARYN!)

0 votos

Y en realidad mi respuesta no funciona del todo porque arcmap piensa que el != es un campo en lugar de "no igual".

2 votos

Cambiarlo por <>

0 votos

Gracias. La verdad es que no sabía que Python aceptara eso.

2voto

Gavin Schulz Puntos 592

Si entiendo lo que pide, quiere eliminar el "ACORN CT & " de "ACORN CT & LARAN RD", dejando sólo "LARAN RD".

Pruebe esta expresión

!STREETS!.replace("{} & ".format( !SECONDARYN! ), '').replace(" & {}".format( !SECONDARYN! ), '')

lo que dejará sólo "LARAN RD".

Me preocupa que esté intentando actualizar una tabla unida. Su tabla en la captura de pantalla se llama StreetSplit2 pero en su expresión parece que el Streets está en otra tabla llamada IntersectAndEnds2 . No se puede actualizar una tabla unida utilizando la calculadora de campos, habría que calcular ese campo en la tabla real (y si es necesario realizar la unión en la otra dirección).

1 votos

No creo que esto no para el caso en que el valor del campo SECONDARYN es la última carretera de la lista.

0 votos

@RichardFairhurst buen lugar, han actualizado alrededor de eso.

0 votos

Tampoco funcionaría en el caso de que no hubiera ninguna calle transversal y sólo figurara la propia carretera, lo que puede ocurrir con sus datos, ya que incluye los puntos de callejón sin salida, los de rastro y los sin salida.

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