如何在arcpy中使用replace函数?
我正在尝试使用更新游标来替换字段中的缩写(比如:把ST替换成STREET,把AVE替换成AVENUE等等),但是似乎一直无法成功。我试过各种方法,但显然还是漏掉了什么。代码可以运行,但对字段没有任何改变。有没有什么建议?非常感谢!
import arcpy
from arcpy import env
env.workspace = "C:/data"
fc = "blah.shp"
cursor = arcpy.da.UpdateCursor(fc, ["BLAH_BLAH"])
for row in cursor:
row = row.replace("ST", "STREET")
cursor.updateRow(row)
del row
del cursor
2 个回答
1
这里的代码是用来处理一个叫做“table”的数据表,路径是'C:\DATA'。
接下来,使用一个叫做“UpdateCursor”的工具来更新这个数据表中的“ST_NAME”这一列。这个工具会让你逐行访问数据,方便你进行修改。
for row in cursor:
if "ST" in row[0]:
row[0] = row[0].replace("ST", "STREET")
if "AVE" in row[0]:
row[0]= row[0].replace("AVE", "AVENUE")
if "RD" in row[0]:
row[0]= row[0].replace("RD", "ROAD")
if "DR" in row[0]:
row[0]= row[0].replace("DR", "DRIVE")
if "BLVD" in row[0]:
row[0]= row[0].replace("BLVD", "BOULEVARD")
if "PK" in row[0]:
row[0]= row[0].replace("PK", "PARK")
cursor.updateRow(row)
1
row 是一个字段的列表,你不能直接用它来访问字段的值。要使用字段的索引来访问,比如:row[0] = row[0].replace("ST", "STREET")