Hi,
I am trying to replace double spaces in an address with a single space. In pro, I can do this using .replace() like this !Service_Address!.replace(" "," ")
but when I try this within arcpy, I get an error
arcgisscripting.ExecuteError: ERROR 000539: File "<expression>", line 1
u"106 NE ENTRADA AVE".replace( , )
The replace parameters are not showing.
any ideas?
this worked
calc = "!matched!.replace(' ',' ')"
arcpy.management.CalculateField(cis_tbl,"matched",calc,'PYTHON3')
fc = "layer" # path to layer
field_name = "Field" # field name
arcpy.management.CalculateField(fc, field_name, "!{}!.replace(' ', ' ')".format(field_name), "PYTHON3")
if you wan to do multiple spaces with a single space in addresses you can do something like this,
import arcpy
# Replace multiple spaces with a single space in a string
def replace_multiple_spaces(address):
return ' '.join(address.split())
# Example: Update a feature class field with cleaned addresses
def clean_addresses_in_feature_class(feature_class, address_field):
with arcpy.da.UpdateCursor(feature_class, [address_field]) as cursor:
for row in cursor:
address = row[0]
if address: # Check if the address is not empty
cleaned_address = replace_multiple_spaces(address)
row[0] = cleaned_address
cursor.updateRow(row)
# Example usage
feature_class = "layer" # layer
address_field = "Field" # Field addresses
clean_addresses_in_feature_class(feature_class, address_field)
print("Addresses cleaned successfully!")