मेरे पास कुछ शेपफाइल्स हैं, जिनमें से कुछ विशेषताओं में गैर-अंग्रेजी वर्ण हैं। चूंकि कुछ प्रश्न इन वर्णों (विशेष रूप से चेंजडेक्टर ) के साथ काम नहीं करते हैं , मैंने उन्हें एक साधारण स्क्रिप्ट के साथ अग्रिम में बदलने और नए तार को दूसरे क्षेत्र में जोड़ने का प्रयास किया।
हालाँकि, वर्णों में परिवर्तन ठीक काम करता है लेकिन आर्कपी के साथ फ़ील्ड को अपडेट नहीं कर रहा है। UpdateCursor।
इसे हल करने का एक उपयुक्त तरीका क्या है?
मैंने भी कोडक को "कोड" पोस्ट कोडक के माध्यम से करने की कोशिश की है, कोडब्लॉक को उसी त्रुटि के साथ।
त्रुटि संदेश:
रनटाइम त्रुटि ट्रेसबैक (सबसे हालिया कॉल अंतिम): फ़ाइल "", पंक्ति 1, फ़ाइल में "c: /gis/python/teststring.py", पंक्ति 28, वैल = कोड में (str (prow .ypkod)) यूनिकोडेनाकोड: 'ascii' कोडेक स्थिति 3 में वर्ण u '\ xc4 को एनकोड नहीं कर सकता है: क्रम में नहीं (128)
कोड:
# -*- coding: cp1252 -*-
def code(infield):
data = ''
for i in infield:
## print i
if i == 'Ä':
data = data + 'AE'
elif i == 'ä':
data = data + 'ae'
elif i == 'Å':
data = data + 'AA'
elif i == 'å':
data = data + 'aa'
elif i == 'Ö':
data = data + 'OE'
elif i == 'ö':
data = data + 'oe'
else:
data = data + i
return data
shp = r'O:\XXX\250000\DB\ArcView\shape.shp'
prows = arcpy.UpdateCursor(shp)
for prow in prows:
val = code(unicode(str(prow.Typkod), "utf-8"))
prow.Typkod_U = val
print val
prows.updateRow(prow)
टाइपकोड के मूल्य इस प्रकार के हैं: [डी, डी, एस, डीडीआरod, टीआरओ] आदि।
मैं विंडोज 7 पर आर्कमैप बेसिक (10.1) का उपयोग करता हूं।
नई त्रुटि संदेश:
रनटाइम त्रुटि ट्रैसबैक (सबसे हालिया कॉल अंतिम): फ़ाइल "", पंक्ति 1, फ़ाइल में "c: /gis/python/teststring.py", पंक्ति 29, में वैल = कोड (यूनिकोड (स्ट्रै (पंक्ति))। टाइपकॉड), "यूटीएफ -8")) यूनिकोडएकोडकोड: 'एससीआईआई' कोडक चरित्र 3 में स्थिति u '\ xc4' को एनकोड नहीं कर सकता: क्रम में नहीं (128)
>>> val
'DDR type'
>>> type(val)
प्रकार 'str'
ऐसा प्रतीत होता है जैसे फ़ंक्शन से आउटपुट किसी तरह गलत है। जब इसमें intention शामिल होता है तो यह रिटर्न करता है data = u'DDR\xc4'
और नहीं (जैसा कि मेरा इरादा था) data = 'DDRAE'
। क्या इस कारण हो सकता है पर कोई सुझाव?