在arcgis打開一個(gè)圖層的屬性表,可以對(duì)屬性表的某個(gè)字段進(jìn)行計(jì)算,但是在平常一般都是使用arcgis提供的字段計(jì)算器的界面進(jìn)行傻瓜式的簡(jiǎn)答的賦值操作,并沒有使用到腳本對(duì)字段值進(jìn)行邏輯的操作。由于最近一直在學(xué)python腳本,剛好又碰上一好基友需要我的助攻(使用arcgis制圖),這就用上了。本以為能夠輕松搞定的,沒想到搬石頭砸腳了,下面就來說我是如何被砸腳的吧。
二、問題描述:將test字段中值為“湖南”的變?yōu)椤昂鲜 薄?/p>
這個(gè)邏輯是相當(dāng)?shù)暮?jiǎn)單,使用python寫一個(gè)對(duì)應(yīng)的方法為:
def cal(value): if(value=='湖南'): return value + '省' else: return value
在arcgis中運(yùn)行python代碼如下圖:
注意:引用屬性字段的值得方法為!test!
點(diǎn)擊確定,結(jié)果彈出一個(gè)錯(cuò)誤,沒有提示具體是什么錯(cuò)誤,最后在查找了一下資料,原來是python使用中文的時(shí)候一定要進(jìn)行轉(zhuǎn)碼。
三、解決方案
于是將上面代碼中有中文出現(xiàn)的地方對(duì)其進(jìn)行轉(zhuǎn)碼就好了。更改后的代碼如下:
def cal(value): if(value=='湖南'.decode('utf-8')): return value + '省'.decode('utf-8') else: return value
這下就沒有錯(cuò)誤了,需要更改的就是在字符串”湖南“和‘省”后面添加 decode('utf-8')方法對(duì)其進(jìn)行編碼。
這下就解決了在arcgis中python腳本處理中文的問題。
四、小結(jié)
在arcgis中使用python腳本,只要碰到中文就需要對(duì)其進(jìn)行decode('utf-8')進(jìn)行轉(zhuǎn)碼。
另外,在arcgis中提供的python腳本編輯器超級(jí)難用,所以可以先使用好用的python編輯,將邏輯代碼編寫好,然后復(fù)制進(jìn)去,然后運(yùn)行,又快又好。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com