在arcgis使用python腳本進行字段計算時是如何解決中文問題的
一、引言
在arcgis打開一個圖層的屬性表,可以對屬性表的某個字段進行計算,但是在平常一般都是使用arcgis提供的字段計算器的界面進行傻瓜式的簡答的賦值操作,并沒有使用到腳本對字段值進行邏輯的操作。由于最近一直在學(xué)python腳本,剛好又碰上一好基友需要我的助攻(使用arcgis制圖),這就用上了。本以為能夠輕松搞定的,沒想到搬石頭砸腳了,下面就來說我是如何被砸腳的吧。
二、問題描述:將test字段中值為“湖南”的變?yōu)椤昂鲜 薄?/strong>
這個邏輯是相當(dāng)?shù)暮唵危褂胮ython寫一個對應(yīng)的方法為:
def cal(value):
if(value=='湖南'):
return value + '省'
else:
return value
在arcgis中運行python代碼如下圖:

注意:引用屬性字段的值得方法為!test!
點擊確定,結(jié)果彈出一個錯誤,沒有提示具體是什么錯誤,最后在查找了一下資料,原來是python使用中文的時候一定要進行轉(zhuǎn)碼。
三、解決方案
于是將上面代碼中有中文出現(xiàn)的地方對其進行轉(zhuǎn)碼就好了。更改后的代碼如下:
def cal(value):
if(value=='湖南'.decode('utf-8')):
return value + '省'.decode('utf-8')
else:
return value
這下就沒有錯誤了,需要更改的就是在字符串”湖南“和‘省”后面添加 decode('utf-8')方法對其進行編碼。
這下就解決了在arcgis中python腳本處理中文的問題。
四、小結(jié)
在arcgis中使用python腳本,只要碰到中文就需要對其進行decode('utf-8')進行轉(zhuǎn)碼。
另外,在arcgis中提供的python腳本編輯器超級難用,所以可以先使用好用的python編輯,將邏輯代碼編寫好,然后復(fù)制進去,然后運行,又快又好。
相關(guān)文章
淺談Keras的Sequential與PyTorch的Sequential的區(qū)別
這篇文章主要介紹了淺談Keras的Sequential與PyTorch的Sequential的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python入門教程(三十一)Python的Try和Except
這篇文章主要介紹了Python入門教程(三十一)Python的Try Except,當(dāng)我們調(diào)用Python并發(fā)生錯誤或異常時,通常會停止并生成錯誤消息,2023-05-05
可以使用try語句處理這些異常,需要的朋友可以參考下
Python利用LightGBM實現(xiàn)高效的梯度提升
LightGBM是一個流行的梯度提升庫,由微軟開發(fā),并在多個機器學(xué)習(xí)競賽中取得了優(yōu)秀的表現(xiàn),本文主要為大家介紹了如何利用LightGBM實現(xiàn)高效的梯度提升,需要的可以參考一下2023-06-06

