在arcgis使用python指令碼進行欄位計算時是如何解決中文問題的

在arcgis使用python指令碼進行欄位計算時是如何解決中文問題的

一、引言

  在arcgis開啟一個圖層的屬性表,可以對屬性表的某個欄位進行計算,但是在平常一般都是使用arcgis提供的欄位計算器的介面進行傻瓜式的簡答的賦值操作,並沒有使用到指令碼對欄位值進行邏輯的操作。由於最近一直在學python指令碼,剛好又碰上一好基友需要我的助攻(使用arcgis製圖),這就用上了。本以為能夠輕鬆搞定的,沒想到搬石頭砸腳了,下面就來說我是如何被砸腳的吧。

二、問題描述:將test欄位中值為“湖南”的變為“湖南省”。

      這個邏輯是相當的簡單,使用python寫一個對應的方法為: 


def cal(value):
if(value=='湖南'):
return value   '省'
else:
return value

      在arcgis中執行python程式碼如下圖:

 注意:引用屬性欄位的值得方法為!test!

  點選確定,結果彈出一個錯誤,沒有提示具體是什麼錯誤,最後在查詢了一下資料,原來是python使用中文的時候一定要進行轉碼。

三、解決方案

  於是將上面程式碼中有中文出現的地方對其進行轉碼就好了。更改後的程式碼如下:


def cal(value):
if(value=='湖南'.decode('utf-8')):
return value   '省'.decode('utf-8')
else:
return value

這下就沒有錯誤了,需要更改的就是在字串”湖南“和‘省”後面新增 decode(‘utf-8’)方法對其進行編碼。

這下就解決了在arcgis中python指令碼處理中文的問題。

四、小結

  在arcgis中使用python指令碼,只要碰到中文就需要對其進行decode(‘utf-8’)進行轉碼。

  另外,在arcgis中提供的python指令碼編輯器超級難用,所以可以先使用好用的python編輯,將邏輯程式碼編寫好,然後複製進去,然後執行,又快又好。

您可能感興趣的文章:

python實現中文分詞FMM演算法例項Python smallseg分詞用法例項分析Python匹配中文的正規表示式簡單解決Python檔案中文編碼問題解決Python傳遞中文引數的問題Python實現把數字轉換成中文Python2.x中文亂碼問題解決方法Python中文分詞實現方法(安裝pymmseg)