Estoy tratando de usar Python para dividir un campo de cadena de tres nuevos campos en el separador " - ". El campo se encuentra en el formato "a - b - c". Así que inicialmente tenía esto en la calculadora de campo para newFieldA:
!myField!.partition(" - ")[0]
Esto me dio el valor a en newFieldA. Del mismo modo, he calculado newFieldB y newFieldC. Después de más experiencia con Python usuario tomó una mirada en ella, este fue el resultado final:
' ' if !myField! == 'NULL' else !myField!.split(' - ')[0]
La prueba de NULL se puso en porque algunos de los valores NULL tirar errores. Cada uno de los tres campos fueron calculados utilizando este código, sólo el índice fue cambiado (0, 1 o 2).
Mi problema ahora es que, después de cambiar los errores ortográficos en la myField, he intentado dividir el campo de nuevo, usando el mismo código que trabajó anteriormente. Ahora no se puede ejecutar, dando el error de "mal nombre de campo o desequilibrada entre comillas". Definitivamente estoy usando el campo correcto, y las comillas no son desequilibradas. También, yo, literalmente copiado y pegado desde el código que he usado anteriormente, así que no veo por qué no estaría fallando ahora. Me siento como que me estoy perdiendo de algo muy simple. ¿Alguien tiene alguna idea?
**edit** he puesto lo siguiente en el codeblock
define splitField(value):
' ' if value Is None
else:
value.split(' - ')[0]
y en la expresión de la ventana
splitField(!myField!)
Estoy recibiendo un error de sintaxis en la línea 1, no he estado usando Python tiempo suficiente para ver lo que podría ser, como que se ve bien para mí. ¿Alguien tiene alguna sugerencia para hacer que el código sea mejor?
editar estoy trabajando con datos de la delincuencia, por lo que en el campo de la SUBACCIÓN tengo "Policial - Robo - Fraude". Entonces creé tres campos de MANDATO, la CATEGORÍA, y el DELITO. El resultado final debe ser "Policía" en el MANDATO, "Robo" en la CATEGORÍA y "Fraude" en el DELITO. He cambiado el codeblock para
def splitField(value):
' ' if !SUBACTION! == 'NULL'
else:
value.split(' - ')[0]
Ahora está dando un error de sintaxis en la línea 2.