2014-03-29 19 views
0

我想使用更新光標來替換字段中的縮寫(例如:ST到STREET,AVE到AVENUE等),但似乎無法得到這個工作。我嘗試過每一種排列,但顯然缺少一些東西。代碼運行但不會對該字段進行更改。有什麼建議麼? 非常感謝如何在arcpy中使用替換函數?

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 

回答

0

行字段的列表,你不能直接訪問它的字段值。改用字段索引:row[0] = row[0].replace("ST", "STREET")

+0

謝謝。我想到了,但是會發生什麼事情是每個關鍵變化的實例(例如:Bathurst街成爲Bathurstreet街等)。我試圖分割行,只發現以ST或AVE等結尾的行,但難以指示只有字符串中的最後一部分應該被替換[-1],但它不起作用。我認爲我的代碼已關閉。我沒有我的代碼,但會在稍後發佈。感謝您的幫助。非常感謝。 –

+0

爲要替換的字符串添加空格:.replace(「ST」,「STREET」)。我不知道你在數據中遇到了什麼特殊情況,但這至少對一些人有幫助。 – GISGe

+0

我設法弄清楚並解決了我的問題,但我認爲我會發布我的結果。謝謝你的幫助!進口ArcPy中 從ArcPy中導入的env env.workspace = 「C:/數據」 FC = 「BLAH.shp」 光標= arcpy.da.UpdateCursor(FC,[ 「st_name作爲」]) 用於行中的光標: addrlist =行[0] .rsplit() 如果 'ST' 在addrlist [-1]: addrlist =行[0] .rsplit() addrlist.pop(-1) addrlist。 append('STREET') row [0] =''.join(addrlist) –

相關問題