在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編輯,將邏輯代碼編寫好,然后復制進去,然后運行,又快又好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM